我正在学习 C 并且我编写了以下代码:
#include<stdio.h>
#include <stdlib.h>
void main(){
double *g = calloc(10, sizeof(double));
double h[] = {1,2,3,4,5,6,7,8,9,10};
printf("Size of g: %d\n", sizeof(g));
printf("Size of h: %d\n", sizeof(h));
}
我的印象是g
和h
都是长度为 10 的双精度数组,因为每个双精度都是 8 个字节,sizeof(g)
应该sizeof(h)
等于 80。但是,我得到以下响应:
Size of g: 8
Size of h: 80
我错过了什么,为什么sizeof(g)
8 在这里?