关于pow函数以及类型的问题,求解答

#include <stdio.h>
int main (void) {
    
    printf("2的3次方是%d",pow(2,3));
    
        return 0;
}

问题1:
编译运行发现输出为0
当把%d换为%f就输出8.00000,这是什么原因?
问题2:
如果

#include <stdio.h>
int main (void) {
    int i;
    i=pow(2,3);
    printf("2的3次方是%d",i);
    return 0;
}

此时输出为8,这是什么原因?



%d是整型,%f是浮点型。