字符指针数组的大小

2025-03-01 09:37:53
推荐回答(3个)
回答1:

不认为会是4
应该是12 如果是16位机 应该是6 无论如何不应该是4
任何情况下sizeof(char) 应为1
所以temp就是sizeof(abc)的值
对于char *abc[3]
sizeof(abc)=sizeof(char *) *3
而sizeof(char *)的值,就是地址总线带宽的值(等同于sizeof(int))。最常用的32位机
这个值是4
所以sizeof(abc)的值应为12

测试程序
int main()
{
char *abc[3] = {"one", "two", "three"};
printf("%d\n", sizeof(abc)/sizeof(char));
}

输出
12

回答2:

应该是12

首先要清楚,无论什么类型的指针都是4个字节的,sizeof(char *) == sizeof(int *);

所以sizeof(abc)是3个指针的大小,也就是12个字节
sizeof(char)是1,因此temp应该是12

回答3:

应该是12啊,你用的什么编译器

vs2012结果是12