#include <stdio.h>
int main() {
char* str = "abcdefg";
}
当我编译sizeof(str)时,是4个字节,但abcdefg有8个字节,
printf("str >> %s\n", str + 1);
这段代码已经崩溃了,这意味着str只有4个字节,
abcdefg 在哪里?
我认为,char* str 指向的是abcedfg 地址。那么,abcdefg就存在于内存中。可以?因此,
char* str 在系统中使用 4bytes + 8bytes?
最佳答案
sizeof(str)
返回指针的大小,即 4 个字节。
编辑:
实际上,指针的大小取决于您的系统。对于 32 位,它是 4。对于 64 位,它可能是 8。
关于c - 8字节内存可以输入4字节吗?没有损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858270/