计算机二级C语言考试sizeof

img


sizeof不是求字节大小吗?是不是ca二维数组中六个char每个占一个字节?加\0共七个
然后指针所占字节恒定为4

选C吧
char ca[3][5]是二维数组,ca[0]就是第一行数组,sizeof获得行长度就是第二维长度5
pa[0]就是char*指针类型,长度是4

选C
sizeof是求结构体或者变量占用空间的字节数。
ca这个是二维数组,从定义结束后,它的字节大小定了,跟里面的内容没关系。
二维数组里面的每个元素也是一个数组,ca[0]是ca的第一个元素,里面有5个char型的字节,sizeof取值就是5

img

pa数组的每个元素都是指针,sizeof(pa[0])的大小就是一个指针的大小,字节数是 4


可以查看手册:c语言-sizeof 中的内容

没那么复杂,你要知道的是ca[0] 和 pa[0] 代表什么;
假如你定义个数组 int array[10]; 注意,没有初始化哦,问你sizeof(array) 是多少?
答案是40,因为数组在你定义的时候就注定了你的大小:10 * 4 (int 为 4 个字节)

回过头来
ca[0] 代表什么?代表第一行数组,几个?5 个,类型 char,1 * 5
pa[0] 代表什么?代表指针数组的第一个元素,是什么?是指针,指针的sizeof?4