也许在前面的代码中看到\n,\0很纳闷是啥。其实在字符中有一组特殊的字符是转义字符,转义字符顾名思义:转变原来的意思的字符。
比如:我们有字符n,在字符串中打印的时候自然打印出这个字符,如下:
#include
int main()
{
printf("abcndef");
return 0;
}
输出结果:
如果修改一下代码,在n的前面加上\,变成如下代码:
#include
int main()
{
printf("abc\ndef");
return 0;
}
输出的结果:
我们可以看到修改的前后代码输出的结果,截然不同,这就是转义字符的问题,\n是一个转义字符表示换行的意思,我们可以简单的理解为\让n的意思发生了转变,n是一个普通的字符,被\转义为换行的意思。
C语言中像这样的转移字符还有一些,具体如下:
下面2种转义字符可以理解为:字符的8进制或者16进制表示形式
#include
int main()
{
printf("%c\n",'\'');
printf("%s\n", "\"");
printf("%c:\\test\\code\\test.c\n");
printf("\a");
printf("%c\n", '\130'); //130是8进制,转换成10进制是88,
//以88作为ASCII码值的字符是X
printf("%c\n", '\x30');//x30中的30是16进制,
//转换成10进制是48,以48作为ASCII码值的0
return 0;
}
C语言的代码是由一条一条的语句构成的,C语言中的语句分为一下五类:
空语句是最简单的,一个分号就是一条语句,是空语句。
#include
int main()
{
;//空语句
return 0;
}
空语句,一般出现的地方是:这里需要一条语句,但是这个语句不需要做任何事,就可以写一个空语句。
表达式语句就是在表达式是的后边加上分号。如下所示:
#include
int main()
{
int a = 20;
int b = 0;
b = a + 5; //表达式语句
return 0;
}
函数调用的时候,也会加上分号,就是函数调用语句。
#include
int Add(int x,int y)
{
return x+y;
}
int main()
{
int ret = Add(2,3); //函数调用语句
return 0;
}
复合语句就是代码块,成对括弧中的代码就构成一个代码块,也被称为符合语句。
#include
void print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d", arr[i]);
}
int main()
{
int i = 0;
int arr[10] = { 0 };
for (i = 0; i < 10; i++) //for循环的循环体的大括号中的就是复合语句
{
arr[i] = 10 - i;
printf("%d\n", arr[i]);
}
}
return 0;
}
控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言由九种控制语句。
可以分成一下三类:
1.条件判断语句也叫分支语句:if语句、switch语句;
2.循环执行语句:do while 语句、while 语句、for 语句;
3.转向语句:break语句、goto语句、continue语句、return语句。
后期笔记中会介绍控制语句哒~
注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
注释是给程序员自己,或者其他程序员看的。
好的注释可以帮助我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。
C语言的注释有两种表示方法。
第一种方式是将注释放在/*。。。。*/
之间,内部可以分行。
/* 注释 */
/*
这是一行注释
*/
这种注释可以插在行内。
int fopen(char *s /* file name */,int mode);
上面实例中,/* file name /用来对函数参数进行说明,跟在它后面的代码依然会由效执行。
这种注释一定不能忘记结束符号/,否则很容易导致错误。
printf("a "); /* 注释一
printf("b");
printf("c ");/* 注释二 */
printf("d ");
上面示例的原意,第一行和第三行代码的尾部,有两个注释。
但是,第一行注释忘记写结束符号,导致注释以延续到第三行结束。/**/
这个注释也不支持嵌套注释,/*
开始注释后,遇到第一个*/
就认为结束了。
/*
printf("a ");
printf("b ");
printf("c "); /*注释二*/
printf("d );
*/
第二种写法是将注释放在双斜杠//
后面,从双斜杠到行尾属于注释,这种注释只能是单行,可以放在行首,也可以放在行的结尾。这是C99标准新增的语法。
//这是一行注释
int x = 1; //这也是注释
不管是那一种注释,都不能放在引号里面。
双引号里面的注释符号,会被视为普通字符,没有注释作用。
编译时,注释会被替换成一个空格,所以min/* 这里是注释 */Value
会变成min Value
,而不是minValue