C语言中的指针在32位计算机上大小为4个字节,在64位计算机上为8个字节。当我们在编译器中用sizeof函数来测量其大小时,不论何种情况,其大小均为8。情况如下
int *a = (int *)malloc(sizeof(int)*n);
printf("%d",sizeof(a));
也就是说不论这个n大小为多少,输出结果仍然为8,且不论指针类型是什么,输出结果仍然为8。不能通过使用size(a)/sizeof(int)这串代码来计算指针a里面有多少个值,因为其结果始终为2
C语言中的指针在32位计算机上大小为4个字节,在64位计算机上为8个字节。当我们在编译器中用sizeof函数来测量其大小时,不论何种情况,其大小均为8。情况如下
int *a = (int *)malloc(sizeof(int)*n);
printf("%d",sizeof(a));
也就是说不论这个n大小为多少,输出结果仍然为8,且不论指针类型是什么,输出结果仍然为8。不能通过使用size(a)/sizeof(int)这串代码来计算指针a里面有多少个值,因为其结果始终为2