表达式
分配了多少空间int *a[10];
如果int
的尺寸为4
且int pointer
的尺寸为2
。
选项分别为2,4,20,40
我很擅长指点请帮助我。
答案 0 :(得分:2)
在声明int *a[10]
中,a
是指向10大小的int的指针数组,因此size = sizeof (int*) * 10
。
您可以应用sizeof运算符来打印其大小:
printf("sizeof = %zu", sizeof(a));
如果在某些系统中假设指向int的指针是2(正如你所说的那样)那么大小将是20个字节。
答案 1 :(得分:2)
这将分配一个包含10个整数指针的数组,如果int指针的大小为2,则占用20个字节。
答案 2 :(得分:1)
用printf ("sizeof (a)= %d\n", sizeof (a));
如果sizeof * int == 2(如旧的DOS机器),则应打印“20”;如果sizeof * int == 4,则应打印“40”。
示例(32位MSVC编译):
#include <stdio.h>
int
main () {
int * a[10];
printf ("sizeof(int)=%d, sizeof (*int)=%d, sizeof (a)=%d\n",
sizeof(int), sizeof (int*), sizeof (a));
return 0;
}
sizeof(int)= 4,sizeof(* int)= 4,sizeof(a)= 40