c - 给 char 指针赋值

标签 c

我正在尝试学习 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/

相关文章:

c - 需要帮助理解我的示例的 malloc(0)

C:如何过滤命令?

c - fork() kill() 和 execv()

c - gcc 未定义对 dbus_* 的引用

c: 在函数中使用指针作为输入时,使用 *pointer++ 递增指针值不起作用

c - 普通 C 中的通用堆栈不会正确复制结构

c - 浮点运算中的清零行为

c - memcpy 垃圾数据被打印后

c - 在 Ctrl-C 上终止父进程和子进程

c++ - 结合C\C++转换单元的状态?