我正在尝试学习 C,并且遇到了 char 指针,这对我来说并没有真正的意义......
我见过很多人这样做:
char* something = "Hi";
printf("%s", something);
我以为指针指向变量的内存地址?你不应该做一些像*something =“Hi”这样的事情吗?
最佳答案
字符指针指向内存的单个字节。由于字符串 "Hi"
比单个字节占用更多内存,因此 char 指针仅保存字符串中第一个字符 'H'
的地址。
为了演示这一点,请尝试取消引用指针并打印它:
printf("%c\n", *something);
否则,printf(您正在使用的)的 %s
选项需要一个指向字符串第一个字符的指针,并将打印直到它达到零字节。
关于c - 给 char 指针赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28000372/