枚举常量enum:
作用:使用人看的懂的名字代替不容易区分的数字
图中使用enum,使得mo ,to....等符号被赋予整数值(enum默认整数,不用申明)
并且默认是从数值0开始赋值(若想改变起始赋值可人为申明mo=1,修改后自动依次赋值1,2,3....)
enum与switch的联用:
作用:输入整数,输出周几(1对应周一,2对应周二...)
---------------------------------------我是分界线---------------------------------------------
字符串和字符数组和\0 :
char a1[]="",和char a1[]={'',''}都是创建并申明字符数组a1,并存入字符串
char a1[]=""输入的”abc”其实是“abc\0”
\0相当于隐藏的结束符号,图中调试结果a2和a3对比可知。(a2为什么存在乱码?是因为a2结尾没有读取到结束符号\0,继续读取,导致乱码生成)
如何查询字符串长度(或字符数组)?
用 strlen:
由图可知:
第一点:\0不参与字符串长度,第二点:由于a2没有\0作为结束符,所以出现35的随机数字
------------------------------------我是分界线--------------------------
转义字符:
调试发现“c:\test\test.c''无法按照预想打印
因为\t是转移字符,会横向跨进。
想要消去”\t”中“\"的作用,可以增加一个“\”变为“\\t”
同理,\n为转行字符,改为\\n便打印为\n
已知转移字符:
\xdd(其中dd是数字)的作用为16进制的转换
\ddd(其中ddd是数字)的作用为8进制的转换
(复习:%d10进制,%x16进制,%o8进制)
思考:为什么打印结果为9?
首先:"\t”是一个转义字符看为一个字节
其次:\1008中,\ddd”的形式为8进制的转义字符看为一个字节,但是!8进制不可能存在8
所以\1008为两个字节
最后“\0”作为隐藏字节(其实正确来命名是空字节)也算作一个字节
所以储存字节分为c,\t,e,s,t,\100,8,\x12,\0总共9个字节