我编写了一个简单的程序,以了解标准c ++库sizeof()的功能。
其后:
const char* array[] = {
"1234",
"5678"
};
std::cout << sizeof(array) << std::endl;//16
std::cout << sizeof (array[0]) << std::endl;//8
std::cout << printf("%lu\n",sizeof (char) );//1
std::cout << printf("%lu\n",sizeof (int) );//24
std::cout << printf("%lu\n",sizeof (float) );//24
std::cout << printf("%lu",sizeof (double) );//281
可以从输出中看到报告的字符在我的操作系统中的尺寸为1字节,如可预期的。但是我不明白为什么'''array [0]'''的维数是8,因为它包含4个字符,并且对于包含在字符串中的结尾序列“ \ n”至少包含2个字符。因此,我认为数组的第一个元素占用的字节数应为6而不是8。此外,如果增加/减少数组第一个元素中包含的字符数,则其大小不会改变。显然,我错了。如果有人可以向我解释此功能,我将不胜感激。谢谢