1,语句及其分类
C语言的代码是由一条一条的语句构成的
每行后面有个;就算一个语句。(我是这样想的,不知道对不对)
1)空语句
int main(){
;//空语句
return 0;
}
当这里需要一个语句(语法要求)但是并没有含义时,可以放一个;表示一个空语句。
2)表达式语句
在表达式后面加上一个;就是一个表达式语句,平常的a=b+1;就算一个表达式语句。
3)函数调用语句
就是使用库函数等的函数时的表达式后面加上一个;就是函数调用语句。如printf("iloveyou");就是一个函数调用语句。调用了库函数中的printf。
4)复合语句
就是代码块。成对括号括起来的代码的总称就是代码块,也叫做复合语句。
5)控制语句
如图:
2,注释的必要性
要写有必要的注释,没有注释别人和以后的自己看不懂现在写的代码。
形式1
/* 注释 */ 此形式不可嵌套。多行注释
形式2
//注释 单行注释
3,c语言数据类型
字符型
char
整型
int /short int/long int/long long int
浮点型
float(单精度) /double(双精度) /long double
布尔类型
(使用时需包含头文件<stdbool.h>), 取值为true or false 表示真假_Bool(bool) 0假1真
4,数据类型长度
(补充)
sizeof 一个关键字也是一个操作符,计算操作符数的类型长度的,单位是字节。
sizeof(类型)
sizeof 表达式
sizeof的计算结果的类型是size_t类型 占位符为%zd
char--2 float--4
int--4 double--8
short--2 long--8
5,unsigned and signed
signed关键字表示一个类型带有正负号,包括负值。 signed int =int
(有符号整数占位符%d,无符号整数占位符%u)
unsigned关键字表示该类型不带有正负号,只能表示0和正整数。
char的符号有无不确定,取决于编译器的实现,大部分的编译器中char=signed char
16位的signed short int的取值范围为-32768~32767
unsigned short int的取值范围为0~65535
6,数据类型的取值范围
limits.h 文件中说明了整型变量的取值范围
float.h 文件中说明了浮点型变量的取值范围
7,变量
C语言中变化的量成为变量,不变的量称为常量
模板:数据类型 变量名;
变量在初始创建的时候进行赋值,叫做初始化。
全局变量:在大括号外部定义的变量。(我理解的是在int main(){}外定义的)
局部变量:在大括号内部定义的变量。
当局部变量和全局变量同名时,局部变量优先使用。
8,算术运算符
加 减 乘 除 取模
+ - * / %
双目操作符(有两个操作数)
除法 /
除号两边是整数,结果也为整数(占位符使用%d)
除号两边至少有一个小数,结果也为小数(占位符使用%f)
取模 %
返回两个整数相除的余值。
这个运算只能用于整数,不能用于浮点数
负数求模的规则:结果的正负号取决于第一个运算数的正负号
9,赋值操作符
= 是一个可以随时给变量赋值的操作符
连续赋值
从右到左进行赋值。
复合赋值符
例如:
int main(){
int a=2;
a +=4;
return 0;
}
最后a=a+4=6。
10,单目操作符
例如:++,--,+(正号),-(负号)
++ --
前置++ 前置--
先++后使用 先--后使用
后置++ 后置--
先使用后++ 先使用后--
+ -号
+号可以忽略,-号就是改变一个数的正负值。
11,强制类型转换
int a =(int)3.14;
如上就是一个强制类型转换。