首页 > 试题广场 >

64位系统下有`char**p[4];`请问`sizeofp

[单选题]
64位系统下有 `char ** p[4];` 请问 `sizeof p` 的值是多少
  • 8
  • 16
  • 32
  • 64
亲测答案确实应该是32,原先理解的是指针的指针,那还是指针,应该是8。
但是这里好像应该是有4个指针的指针,所以答案是32.
发表于 2017-09-04 22:16:28 回复(0)
更多回答
p 是个数组,所以 sizeof(p) 返回数组的占用大小,64 位情况下
【char **p[4] 】 表示 【char** 数组】 返回 4 * 8 = 32
【char *(*p)[4] 】 表示 【指向 char* 数组的指针】 返回 8
char (**p)[4] 】 表示 【指向 char 数组的指针的指针】 返回 8


发表于 2017-09-08 14:31:12 回复(1)
先看个简单的
sizeof(a[10]):返回的是一个指针的大小,32位下应该是4
int a[10],sizeof(a):返回的是元素占用空间的大小,32位下应该是4*10=40;

本题中char **p[4],p是指向指针的指针,数组中存放的是指针。64位下一个指针占8位,则sizeof(p)返回的是元素占用空间的大小,4*8=32.
发表于 2017-09-06 18:09:17 回复(2)
p是一个数组,存放了4个二维指针,4*8
发表于 2021-08-03 16:44:21 回复(0)
Lnz头像 Lnz
p有4个,类型是指针的指针,64位指针大小是8字节,4*8=32
发表于 2017-08-31 11:05:01 回复(3)
64位操作系统,指针是8位。 **p是指针的指针,还是指针, 这里有4个,p有4个元素,,所以总共占用32
发表于 2022-07-13 14:50:05 回复(0)
可看作一个二级指针数组,数组的每个元素为指针,数组大小为4,64位机器下,指针大小为8,则sizeof p的大小为4X8 = 32
发表于 2017-09-12 22:03:43 回复(0)
sizeof(a[10]):返回的是一个指针的大小,32位下应该是4
int a[10],sizeof(a):返回的是元素占用空间的大小,32位下应该是4*10=40;

本题中char **p[4],p是指向指针的指针,数组中存放的是指针。64位下一个指针占8位,则sizeof(p)返回的是元素占用空间的大小,4*8=32.
发表于 2017-09-10 20:08:31 回复(0)
**p是char *p是char的指针 p是指针的指针 64位OS的指针有8个字节
发表于 2017-08-31 10:57:14 回复(1)