C Primer Plus-char数组类型和空字符

C没有为字符串定义专门的变量类型而是把它存储在char数组中。

字符串中的字符存放在相邻的存储单元中每个字符占用一个单元;而数组由相邻存储单元组成,所以把字符串存储到数组中是很自然的。


数组的最后一个位置显示字符\0。这个字符就是空字符,C用它来标记字符串的结束。

空字符不是数字0;它是非打印字符,其ASCII码的值为0。C的字符串存储时通常以这个空字符结束。

该字符的存在意味着数组的单元数必须至少比要存储的字符数多 1。


无须亲自把空字符插入字符数组中,scanf();在读取输入时会自动完成这项任务。而#define定义的字符串常量,编译器负责插入空字符。

并且scanf()开始读取输入以后,会在遇到的 第一个空白字符空格blank,制表符tab或者换行符处停止读取,scanf()只会把一个单词而不是把整个语句作为字符串读入。

C使用其他读取输入函数gets();

字符串和字符

字符串常量“x”与字符常量“x”不同。其中一个区别是‘x’属于基本类型char,而“x”则属于派生类型char数组。第二个区别是“x”实际上由两个字符(‘x’和空字符‘\0’)组成。


根据sizeof运算符的报告,数组name有40个内存单元。不过只用了其中前6个单元来存放Morgan,这是strlen所报告的。

数组name中的第7个但愿存放空字符,它的存在告诉strlen在哪里停止计数。


常量和C预处理器

#define pi 3.1415

编译器会在每个出现它的地方替换它。

创建符号常量的 第二种方法

const int month = 12;

这时month是一个只读值。

还有第三种方法创建常量,那就是枚举类型(enum)




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值