c - 为什么要打印完整的字符数组而不是第一个字符?

标签 c pointers

这是源码

char target[80]="hello", *tar;
tar=⌖
printf("%s",tar);  //printing hello

tar 获取 target[0] 的地址,然后打印整个字符数组。

最佳答案

当你说 %s 并指定字符串的起始内存(或任何中间)时,它会被打印直到遇到 '\0' 字符。

考虑

    char *name = "Hello";

将在内部存储为 你好\0

因此,如果您需要单个字符,请使用 %c。

关于c - 为什么要打印完整的字符数组而不是第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21085450/

相关文章:

c - 使用指针交换字符串的第一个字符

c - 如何在 C 中以可移植的方式管理内存对齐和通用指针算法?

c++ - C\C++ 中的 Linux 无线 API

c - 如何动态分配一个二维数组

c - 磁盘写入不适用于 C 中的 malloc

c - 从内联字节重新组装 float

C# 不安全值类型数组到字节数组的转换

c 程序,警告消息传递 ‘fstat’ 的参数 1 从指针生成整数而不进行强制转换

c - 用指针在c中打乱链表

将字符串复制到gdb中的堆栈