字符指针数组的大小
发布网友
发布时间:2024-03-03 01:53
我来回答
共3个回答
热心网友
时间:2024-11-23 18:52
不认为会是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
热心网友
时间:2024-11-23 18:53
应该是12
首先要清楚,无论什么类型的指针都是4个字节的,sizeof(char *) == sizeof(int *);
所以sizeof(abc)是3个指针的大小,也就是12个字节
sizeof(char)是1,因此temp应该是12
热心网友
时间:2024-11-23 18:53
应该是12啊,你用的什么编译器
vs2012结果是12