Sizeof 运算符是编译时运算符。在编译期间用常量结果值转换 sizeof 表达式。[异常可变参数模板c99]
通常编译器会在编译时修复变量的大小。对于数组 n。但是当我打印 sizeof 数组时,它给出了正确的大小?此代码是否在编译时为 n 分配内存?
那么如何评估 sizeof 呢?
函数中的数组 a[] 怎么样?
int fun(int n)
{
char a[n+3];
return sizeof(a);
}
int
main( )
{
int i;
while(i!=-1){
scanf("%d",&i);
int n[i];
printf("\nsize: %d %d\n",fun(3),sizeof n);
}
}
当我尝试这个时: sizeof 正确打印 n 的大小 [(sizeof (int)) * i] 但该函数总是给出错误的结果 6?
如何实现 sizeof 并计算大小(对于 float、int、...datatypes、variables、array,...)?
任何代码表示赞赏!