一、C语言的代码是由一条一条的语句构成的,语句可以分为一下五类:
- 空语句
- 空语句时最简单的,一个分号就是一条语句,是空语句。空语句一般出现的地方是,这需要一条语句,但是这个语句不需要做任何事,就可以写一条空语句
- 表达式语句
- 表达式语句就是在表达式的后边加上分号。如图
- 表达式语句就是在表达式的后边加上分号。如图
- 函数调用语句
- 函数调用语句是函数调用的时候,也会加上分号,这就是函数调用语句。
- 函数调用语句是函数调用的时候,也会加上分号,这就是函数调用语句。
- 复合语句
- 复合语句就是代码块,成对括号中的代码就构成一个代码块,也被称为复合语句。
- 复合语句就是代码块,成对括号中的代码就构成一个代码块,也被称为复合语句。
- 控制语句
- 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择机构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分为三类:
- 条件判断语句(分支语句):if 语句、switch语句;
- 循环执行语句:do while语句、while语句、for语句;
- 转向语句:break语句、goto语句、continue语句、return语句。
- 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择机构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分为三类:
这里提一嘴注释,注释简单来说就是写给自己或者其他程序员看的。注释有两种形式
- /**/的注释。这种是将注释放在/*...*/之间,内部可以分行。
- //的注释。这种是将注释放在//后面。这种注释只能是单行。
- 补充一下,注释在编译时会被替换成一个空格,所以 min/* 注释*/Value 会变成 min Value,而不是minValue。
二、数据类型介绍。C语言提供了丰富的数据类型来描述生活中的各种数据。使用整形类型描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数。编译器只有知道了数据的类型,才知道怎么操作数据。下面主要探讨内置数据类型。
- 字符
1 char 2 [singed] char 3 unsigned char
- 整型
1 //短整型 2 short [int] 3 [signed] short [int] 4 unsigned short [int] 5 //整型 6 int 7 [signed] int 8 unsigned int 9 //长整型 10 //long [int] 11 [signed] long [int] 12 unsigned long [int] 13 //更长的整型 14 //C99中引入
-
浮点型
1 float 2 double 3 long double
-
布尔类型 C语言原来没有为布尔值单独设置一个类型,而是使用整数0表示假,非零值表示真在C99中也引入了布尔类型,是专门表示真假的。布尔类型的使用要包含头文件<stdbool.h>变量取值是 ture 或者 false
1 _Bool flag = ture 2 if (flag) 3 printf("i like u\n")
C语言使用signed和unsigned关键字修饰字符型和整型类型。
- signed关键字,表示一个类型带有正负号,包含负值
- unsigned关键字,表示一个类型不带有正负号,只能表示零和正整数。
- 对于int类型,默认是带有正负号的,所以 int 等同于 signed int 一般 signed 省略不写,写了也不算错。
- int类型也可以不带正负号,只表示非负数,就必须要使用 unsigned 声明变量。这样的好处是同样长度的内存能够表示的最大整数值增大了一倍。比如 16位的 signed short int 的取值范围是:-32768~32767;而 unsigned short int 的取值范围是:0~65535。最大值增大到了65535。
- 字符类型 char 也可以设置 signed 和 unsigned。这里注意的是C语言规定 char 类型默认是否带有正负号,有当前系统决定,也就是说 char 不等同于 signed char,它有可能是 signed char ,也有可能是 unsigned char。
每种数据类型都有自己的取值范围,如果想知道不同数据类型的极限值,可以用这些常量:
LONG_MIN,LONG_MAX //long的最大最小值
LLONG_MIN,LLONG_MAX //long long 的最大值最小值
//其余也是这样的
三、变量。C语言中把经常变化的值称为变量,不变的值称为常量。变量在创建的时候给一个初始值,就叫初始化。
int age; //整型变量
char ch: //字符变量
int age = 18; //初始化
变量可以分为全局变量和局部变量。
- 全局变量:在大括号外部定义的变量就是全局变量,全局变量的适用范围更广,整个工程中想使用都是由办法的。局部变量:大括号内部定义的变量就是局部变量,局部变量的使用范围比较局限,只能在自己所在的局部范围内使用。
- 当全局变量和局部变量同名时,局部变量优先使用。
C语言中为了方便运算,提供了一系列操作符,其中有一组操作符叫做:算数操作符。分别是 +、*、+、*、%,都是双目操作符。
- + 和 -
- + 和- 用来完成加法和减法。
- + 和- 都是有两个操作数的,位于操作符两端的就是它们的操作数,这种操作符也叫做双目操作符。
- * 和 /
- * 和 / 用来完成乘法和除法运算的。
- 除号的两端如果是整数,执行的是整数除法,得到的结果也是整数,如果希望得到小数的结果,两个运算数必须至少有一个浮点数。
- 看下面一个例子:
- 上面的代码,你可能觉得经过运算,score会等于25,但实际上score等于0.这是因为score/20是整除,会得到一个整数值0,所以最后结果是0.为了得到想要的结果,可以将20改为20.0,让整除变成浮点数除法。
- %。运算符%表示求模运算,即返回两个整数相除的余数。这个只能用于整数,不能用于浮点数。
- 负数求模的规则是,结果的正负号由第一个运算数的正负号决定。
在变量创建的时候给一个初始值叫初始化,变量创建好后,再给一个值,这叫赋值。
int a = 100;//这叫初始化
a = 200;//这叫赋值,=是赋值操作符
最后的内容就是单目操作符:++、--、+、-。C语言中一些操作符只要一个操作数,叫做单目操作符。++、--、+(正)、-(负)就是单目操作符。
- ++和--。++是一种自增的操作符,分为前置和后置。--是一种自减操作符,也分为前置和后置。
- 前置++
-
int a = 10; int b = ++a;//++的操作数是a,是放在a的前面。 printf("a=%d b=%d\n",a , b);// a=11,b=11
- 口诀:先+1,后使用;a原来是10,加一变成11,再赋值给b,b也是 10
-
- 后置++
-
int a = 10; int b = a++;//++的操作数是a,放在a后面,就是后置++ printf("a=%d b=%d\n",a , b);//a =11 b=10
-
口诀:先使用,后+1。a原来是10,先使用赋值给b,再+1,所以 a=11,b=10
-
-
--的前置和后置本质和++的一样,请读者自推。
- 前置++
-
+和-
-
这里的+和-都是单目操作符,改变数值的正和负。
-
今天就写到这里啦,万事开头难,我会加油的。看不见你的笑我怎么睡得着,你的声音这么近我却抱不到。