注册 登录
编程论坛 C++教室

这个数组大小是多少?

lindayanglong 发布于 2008-09-22 16:11, 601 次点击
定义int **a[3][4]其数组大小为什么是3×4×4=48?

string strarr1[]={"trend","micro","soft"};
    cout<<sizeof(strarr1)<<endl;
这个结果也是48,为什么呢?请帮忙解释一下
6 回复
#2
chaming3212008-09-23 10:16
回复
整形变量,占四个字节
string  占八个字节
#3
lindayanglong2008-09-23 10:56
string strarr1[]={"trend","micro","soft"};
    cout<<sizeof(strarr1)<<endl;
为什么不是24呢 3×8
#4
thanatus2008-09-23 11:42
字符串首地址是一个16进制的数,可以转换成int型,都是4个字节的长度。
可以输出变量 (int*)a 来查看数组的首字符的地址并将其转换为一个整型数~
#5
lindayanglong2008-09-26 15:15
谢谢 明白
#6
bibingyan2008-09-26 18:47
地址是用4位十六进制表示的。
#7
ciappcia2008-09-26 20:32
string 占16个字节
cout<<sizeof(string);//16
1