首页 > 试题广场 >

64位系统上,定义的变量int* a[3][2]占据()字节

[单选题]
64位系统上,定义的变量int* a[3][2]占据()字节
  • 12
  • 24
  • 8
  • 48
[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组
所以归根结底这是个数组,64位上一个指针是占8字节,8*3*2 选D

如果定义 int (*p)[n];
()优先级高,首先说明p是一个指针,指向一个整型的一维数组
这个就是数组指针
发表于 2017-04-15 00:05:17 回复(0)
64位上一个指针是占8字节,但是答案却是B,24。不理解谁能给解惑一下么
发表于 2016-12-23 09:04:58 回复(3)
一个指针占的字节数目与编译器的位数有关,64位占8个字节,32位占4个字节;
int *p[m][n];
(1)因为 [] 的优先级比 * 高,所以p先与 [ ][ ] 结合,构成一个有m*n个元素的二维数组,
(2)再与*结合,表示这个数组是指针类型的,即数组中的每个元素都是一个指针变量;
所以 一个占m*n*8个字节,此时m=3,n=2,结果为48个字节。

发表于 2018-06-19 12:41:32 回复(0)
严格来说是undefined吧,c标准没有保证过64位系统指针一定是8bytes,还和编译器实现有关
发表于 2017-08-15 20:55:36 回复(0)
一个指针数组,数组里面存放的是指针,a[2][3]可以看成一维数组为a[0],a[1],在每个一维数组里面又存放了3个指针,64系统下指针8位,6*8=48
发表于 2017-01-25 17:36:36 回复(1)
数组的指针大小与该数组总容量大小相等
发表于 2018-03-16 21:40:33 回复(0)
楼上正解~
发表于 2017-03-26 14:38:01 回复(0)
这个指针指向的是一个数组,数组共有三个元素,每二个元素中又是一个数组,大小为8*3=24
发表于 2017-03-19 20:47:05 回复(0)