目录
0.字符串
在C语言中是没有字符串这种特指的类型的,在C语言中双引号引起来的就是字符串("abc")。C语言中,字符串存在字符数组里面。
这个代码的意思是将abc存放在数组里面,[]表明arr1是个数组,数组名字叫arr1,数组每个元素的类型是char。
1.字符和字符串的比较
上面两种存放方式,都是将a、b、c三个字符存放到数组里面。区别在于,数组里面真正存放的其他元素不一样。
第一个因为是常量字符串形式,也就是说存放的字符就是abc,不能变了。而字符串以'\0'作为字符串的结束标志,也就是说arr1真正存放的是a、b、c、\0
第二个里面存放的虽然也是字符串,但是是单个存放进去的,后面也没有结束标志。那么,计算机怎么知道你有没有存完呢,一开始也没有指定数组大小啊。所以,第二种是有问题的。
所以第二组打印的时候,会接着后面打印,知道计算机找到一个\0作为字符串的结束标志才会停止
所以在计算arr1和arr2数组长度的时候,前一个的长度是3,后一个长度是随机值
那么怎么做才能让数组arr2正确存储a、b、c呢?只需要将最后添加一个\0即可。
2.字符串在内存的存储
由于计算机只能认识1、0,那么这么多复杂的字符计算机是怎么存储的呢?
计算机是通过ASCII将键盘上输入的字符存到内存中的,比如说:字符0规定的ASCII码是48,那么计算机就将48认为是0。
那么找到\0的位置,发现对应的是0,那我们也可以通过用0作为数组arr2的结束标志。
3.转义字符
C语言中的\表示转义字符,意思是将原来的意思转变。
比如想要输出一个',不能直接printf("%c\n",''');这个代码是错的,因为C语言会自动将前两个引号做匹配,那么第三个就多出来了,所以就会判错。只要将第二个'改变本来引号的意思,就ok了
4.打印ASCII码
5.注释
注释两个用处,第一是删除掉暂时不用的代码,第二是为代码添加注释