gpt4 book ai didi

C的空字符,引用 "Learn C the Hard Way"的Ex.9

转载 作者:行者123 更新时间:2023-11-30 18:20:18 24 4
gpt4 key购买 nike

我正在开发《Ex》。 《艰难地学习 C》第 9 条:http://c.learncodethehardway.org/book/ex9.html

我有几个问题:

  1. 为什么在逐个字符指定 char 名称时(在“//setup the name”注释下)必须手动输入空字符,而在使用 char *another = "方法时则不需要手动输入空字符泽德”?为什么我们不必输入 char *another = "Zed\0"?

  2. 关于注释“//首先,将它们打印出来”下的代码——他说整数数组和数字数组在第一个字符后都用 0 填充(因为只有一个字符是为每个数组指定)。那么,为什么当他打印这些数组时,整数数组显示0 0 0 0,而字符数组只显示一个单独的a,而不是0 0 0?

  3. 当他设置数字数组时,为什么不需要像名称数组中那样包含空字符?

提前谢谢您。

最佳答案

  1. 因为当将字符串声明为字符串时,编译器会自动将终止NUL添加到数组中。另一种变体是“声明一个字符数组” -> 请参见第 (3) 点,如果您想将其用作字符串,则必须手动给出终止符。
  2. 要么是因为字符 NUL 不可打印,要么是因为您将其打印为字符串(以第一个 NUL 终止,停止显示更多字符。
  3. 因为 number-arrays (int arrayname[count of elements]) 不需要终止符 - 程序员必须采取措施避免越界访问数组。

关于C的空字符,引用 "Learn C the Hard Way"的Ex.9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26089830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com