Tag: 字符指针

char * str; STR =“HELLO”; 如果没有为字符串分配任何内存,它如何工作?

码: #include int main() { char *str; char i = ‘a’; str = &i; str = “Hello”; printf(“%s, %c, %x, %x”, str, i, str, &i); return 0; } 我得到这个输出: Hello, a, 403064, 28ff0b 我有两个疑问: 如何在不为其分配任何内存的情况下存储字符串。 str是一个字符指针,指向char变量i 。 当我添加str = “Hello”; 我不是使用该位置的5个字节,其中4未分配? 因为,我编码str = &i; 当我打印它们时,不应该str和&i具有相同的值吗? 当我删除str = “Hello”; 语句str和&i是一样的。 如果str和&i相同,那么我相信当我说str = “Hello”它应该用’H’覆盖’a’ ‘H’而其余’ello\0’进入后续字节。 我相信整个问题是str = […]