4. 字符串+转义字符+注释
4.1 字符串
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
如果你想存储一个字符:char ch =‘w’;,如果你想存储字符串,那么就要用到数组,通常有两种写法,但这两种写法也有不同之处,我这里用ch1和ch2给大家举例:
可以看到ch1是用{}初始化,里面放的是一个一个的字符,而ch2是直接用“”引起来一串字符,那么这样他们打印的效果是否相同呢?
我们发现打印出来效果并不一样,这是怎么回事呢?
经过调试我们发现,ch2最后有’\0’,而ch2这种写法默认最后隐藏了’\0’,而ch1没有,上文也提到:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
当我们将ch1最后加上’\0’结果就相同了,问题也就解决了。
4.2转义字符
假如我们要在屏幕上打印一个目录: c:\code\test.c
那么我们应该怎么写代码呢?
但实际上程序运行的结果是这样的,这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。
下面看一些转义字符:
这里我们重点关注这两个转义字符:
我们来看一段代码:
我们可以看到打印的结果是:3
我们发现8进制的’063’转换成十进制是’51’,那么’51’对应的为什么是’3’呢?
这里是由八进制转换成十进制,通过ASCII表我们不难发现51对应的就是3,而\xdd也是相同的道理。
5. 注释
- 代码中有不需要的代码可以直接删除,也可以注释掉
- 代码中有些代码比较难懂,可以加一下注释文字
#include <stdio.h>
int Add(int x, int y)
{
return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{
return x-y;
}
*/
int main()
{
//C++注释风格
//int a = 10;
//调用Add函数,完成加法
printf("%d\n", Add(1, 2));
return 0;
}
注释有两种风格:
C语言风格的注释 /*xxxxxx */
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行
解释:不能嵌套注释
/* 只与最近的 */相匹配所以上面的代码就发生的bug。
好了,本篇文章就到此结束了,我们下期再见!