为什么下面代码的输出是这样的?
char str[] = {'i', 't', 'i', 's', 'm', 'e', '\0'}; //this code equates to 7 bytes
char* str[] = {'i', 't', 'i', 's', 'm', 'e', '\0'}; //this code equates to 28 bytes
最佳答案
这段代码并不像你想的那样。它使用 char
常量来初始化 char*
指针数组的元素。这样的“指针”不会指向您的角色;相反,它们具有相应字符的数值!
您系统上的每个字符指针都是 4 个字节长,这解释了结果。
关于char*[] 元素每个占用 4 个字节,而 char[] 每个元素占用 1 个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514993/