C Primer Plus (第11章) 笔记

字符串和字符串函数

笔记

<1 如果字符串字面量之间没有间隔,或者用空白字符分隔,C会将其视为串联起来的字符串字面量。

<2 用标准的数组初始化模式给字符串初始化时,末尾一定要加上‘\0’,不然就不是一个字符串,而是一个字符数组。

❤️ 让编译器计算数组的大小只能用在初始化时。

<4

const char ar1[] = "Something is pointing at me.";
[注]:ar1是代表数组的首地址, 是常量。不能更改ar1,如果改变了ar1,则意味着改变了数组的存储位置(即地址)。可以进行类似ar1 + 1这样的操作,标识数组的下一个元素,但是不允许进行++ar1这样的操作。(递增运算符只能用于变量名前)
const char *pt1 = "Something is pointing at me.";
[注]:指针形式可以使用递增运算符。因为指针形式是把数据(字符串,数字…)的地址存储在指针变量中。开始时指针指向该字符串的首字符,但由于它是变量,故可以使用递增运算符。
[总结]:总的来说,初始化数组把静态存储区的字符串拷贝到数组中,而初始化指针只把字符串的地址拷贝给指针。

<5 建议在把指针初始化为字符串字面量时使用const限定符(这样减少出错的概率)

<6 不建议使用gets(),它不安全。

<7 puts()函数会在待输出字符串末尾添加一个换行符,而fputs()不会这样做。

<8 空字符和空指针

空字符:’\0’ 是用于标记C字符串末尾的字符,其对应字符编码是0。
空指针:NULL 该值不会与任何数据的有效地址对应。函数用它返回一个有效地址表示某些特殊情况发生,例如遇到文件结尾或未能按预期执行。
【注】: 空字符是整数类型,空指针是指针类型。(容易混淆是因为两者都可以用数值0来表示)

<9 C编译器允许main()没有参数或者有两个参数(一些实现允许main()有更多的参数,属于对标准的扩展)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值