一、两种特殊的转义字符
接下来要介绍的两种特殊的转义字符,其应用与含义和进制相关;所以,我先来为大家介绍一下关于数字的进制的基本知识;
1.数字的进制
进制也就是进位计数制,是人为定义带进位的计数方法,最常用的进制是十进制,此外还有二进制、八进制、十六进制等
二进制:由0和1两个数码组成;运算规则是逢二进一;二进制是在计算机领域中被广泛应用的一种进制;二进制中的0和1对应计算机处理的两种状态;二进制能够方便的表示和处理信息;
八进制: 由0~7八个数码组成;运算规则是逢八进一;在一些特定的场景中,如计算机编程和文件权限表示等应用中也具有一定的作用;
十六进制:由0~9和A~F十六个字符组成其中A~F表示10~15.运算规则是逢十六进一;十六进制常用于表示计算机中的内存地址、颜色代码等。
对于二进制、八进制、十六进制转化为十进制,遵循的方法是“按权相加”,将每个数位上的数字乘以对应的权值,然后将结果相加。
2.关于\ddd和\xdd
这两种特殊的转义字符,可以理解为字符的八进制和十六进制表示形式
\ddd: d d d 表示1~8个八进制的数字,
\xdd: d d 表示2个十六进制的数字
上一章提到的 表示字符串终止的字符'\0'其实就是'\ddd'字符的一种形式,其意义是 null 字符,代表没有内容;对应ASCLL值是0;
转移字符对于字符串长度的影响
我们在打印一个字符串的时候往往会引用转义字符,这会对与字符串的长度产生一定的影响;
即一个转义字符某认为一个字符,因此在计算字符串的长度时将转移字符当做一个字符来计算。
你猜猜下面代码的运行结果是多少?
#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n", strlen("C:\test\121"));
return 0;
}
答案是 7 哦,你猜对了吗?
C语言中的语句及其分类
C语言是由一条一条的语句构成的,C语言的语句一般可以分为五类:空语句、表达式语句、函数调用语句、复合语句、控制语句;
空语句:
在所有的语句中,空语句最为简单,它仅由一个分号表示一个语句;别看他简单,在实际应用中也可以起到非常大的作用 !
#include <stdio.h>
int main()
{
;//空语句
return 0;
}
表达式语句:
在表达式后面加上分号的语句即为表达式语句;在C语言中也是经常用到的;
#include <stdio.h>
int main()
{
int a = 0;
int b = 10;
int c = a + b;//表达式语句
return 0;
}
函数语句:
函数语句是我们在调用函数的时候所用到的语句;即在调用的函数后面加上分号;对于分数的调用大大提高了C语言程序的简洁性与灵活性;
include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int main()
{
int num1, num2;
num1 = 25;
num2 = 10;
int num3 = add(num1, num2);//函数调用语句
printf("%d\n", num3);
return 0;
}
复合语句:
一条一条的语句所组成的语句块即符复合语句:换一句话说,成对括号中的代码就构成了一个代码块,也被称为复合语句;
控制语句:
C语言是一种结构化的语言,在C语言中控制语句尤为重要;控制语句用于控制程序的执行流程,已实现程序的各种结构方式;
C语言支持三种结构(顺序结构、分支结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句;
1.条件判断语句也叫做分支语句:if 语句;swich语句;
2.循环执行语句:do while 语句; while 语句;for 语句;
3.转向语句:break 语句; goto 语句; continue 语句; return 语句;
注释的概念
注释是对于代码的说明;在编译器编译过程中,编译器会忽略注释,也就是说,注释抑郁编译没有影响;
如果不写注释,可能会让后期阅读代码的人疯狂,所以注释不仅仅可以给自己看,帮助自己编程、开发项目;也是可以给其他程序员看的,帮助其他程序员理解我们编写的代码,有益于协同开发;
我们在编写语言的过程中,切记不要小题大做,好的注释确实可以帮助我们更好的理解代码,但是我们也不要过度注释,不要写没必要的过程。这样补不仅仅会使代码看起来冗余,更会浪费没有必要的时间;
总之 ,注释对于高效的编程有着很重要的作用,在促进个人与团队开发的同时,它也反映了一个程序员的素质;
注释的形式
C语言的注释有两种形式
1./*注释*/
这种方法所注释的内容位于符号内部;可以跨越多行进行注释即内部可以分行;
/* 注释 */
/*
注释
*/
此外该注释也可以插入到行内进行注释;这种注释一定要以 /* filename*/ 的形式,否则很容易导致错误;
int fopen(char*s /* file name */, int mode);
但是,这种方法也有不足之处;
如下代码
printf("a"); /* 注释一
printf("b");
printf("c"); /* 注释二 */
printf("d");
这个代码的原则是第一行和第三行的代码都有注释;但是,第一行的注释忘记写注释符号,导致注释一直延续到第三行结束。
同时,这种注释也不支持嵌套注释,/*开始注释后,遇到第一个*/注释就结束了;
/* 注释一
printf("a");
printf("b");
printf("c"); /* 注释二 */
printf("d");
*/
2.//注释
这种注释的注释内容位于//后面,从双斜杠到结尾都是注释。但是,这种注释只能是单行,可以放在行首,也可以放在一行的结尾,这是C99新增的语法;
//注释
printf("hello world");//注释
不管是哪种注释,都不能放在双引号后面;
双引号里面的注释符号,会成为字符串的一部分,从而失去注释的作用。
printf("//hello /* filename*/ world");
上面代码中,被放在双引号里面的两种注释形式都失去了注释作用!
注释会被替换
编译时,注释会被替换成一个空格,所以min/* 这里是注释*/Value 会变成 min Value , 而不是minValue!