字符数组初始化以及一些字符字符串和 C 差异
char array initialization and some char string and c difference
我看到一些代码是这样写的:
char str[256] = {0};
或
char str[256] = {1};
当前一种情况时,我使用
printf("%s", str);
什么都不给,
这是否意味着将所有 str[0] 都交给 str[256] 所有值 1?
当后者时,STDIO 给一个 ASCII 微笑字符。
此外,两者之间有什么区别
char s[256] = {0};
printf("%c", s[1]);
它没有任何stdout
char s[256] = {0};
printf("%s", s[1]);
它给出一个(空)
我不明白,因为我是 c 字符数组和 c 指针的初学者。
这会将所有 256 个字符初始化为0
:
char str[256] = {0};
这个初始化第一个1
,其余的初始化0
:
char str[256] = {1};
关于printf
的行为,"%c"
期望一个单一的char
。你把它传递0
,这是NUL
(字符串终止),所以它不打印任何内容。 "%s"
期望char*
具有以 nul 结尾的字符串中的第一个字符。你给它传递一个值为 0
的单个char
,它将其解释为空指针。
相关文章:
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 将 NULL 与 C 的字符* 字符串一起使用
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法将常量字符字符串传递给模板类
- 如何组合一个宽字符字符串,中间插入一些空字符
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 从给定索引返回子字符字符串的函数
- 字符 [](c 字符串)的初始化标准
- 如何将字符字符串用作数学运算符
- 将 Unicode 字符/字符串写入文件
- C++,字符* 字符串修改
- 如何有效地用不同的整数元素替换字符字符串的元素
- C++:如果我们在字符串中添加一些整数,为什么它会从开头删除该数量的字符?(字符串 + 整数)
- strcpy正在复制sth字符i字符串.如何解决此错误
- 在C++中将双精度转换为字符*/字符串
- C 中的宽字符字符串
- 如何提取C 中的字符/字符串之间的字符串
- 无法将字符/字符串转换为int
- 带有指针的反转字符字符串
- 反转字符串中的 n 个字符(字符串中没有空格),而不使用 c++ 中的内置函数