目录:
1.数据类型
2.运算符,表达式和语句
3.循环
4.分支和跳转
5.函数
6.数组
7.结构体与联合体(重要)
8.指针 (重要)
9.宏定义
1.数据类型
(1)整型变量
类型说明符 所占字节数 取值范围
int 2 -32728~32767
unsigned int 2 0~65535
short int 2 -32768~32767
unsigned short int 2 0~65535
long int 4 -2147483648~2147483647
unsigned long int 4 0~429467295
例子:
int a,b,c; //定义a,b,c为整型变量
long int x,y; //定义x,y为长整型变量
unsigned long int m,n; //定义m,n为无符号长整型变量
(2)浮点变量
浮点变量分为单精度浮点型和双精度浮点型两类。单精度浮点型类型说明符为float,双精度浮点型类型说明符为doubl.单精度浮点型占4个字节内存空间,只能提供6~7位有效数字。双精度浮点型占8个字节内存空间,能提供15~16位有效数字。
(3)字符型变量
字符型变量分为有符号字符型和无符号字符型两类,有符号字符型类型说明符为char,无符号字符型类型说明符为unsigned char。字符型变量占1个字节内存空间.
2.运算符,表达式和语句
c语言的5个基本运算符
+加法运算符,-减法运算符,*乘法运算符,/除法运算符,%取余运算符,=赋值运算符
优先级%=/=*>+=-.
变量=确定的值 可以把“确定的值“赋值给变量
逻辑运算符
&& 逻辑与,只要条件中有一个为假,整个结果即为假
|| 逻辑或,只要条件中有一个为真,整个结果就为真
! 逻辑非(取反),与当前事件相反(将非0变0,将0变1)
逻辑运算符
逻辑运算符是经常和关系运算符结合使用的,通过关系运算符获取逻辑真或假。
> 大于,< 小于,,>= 大于等于,<= 小于等于,!= 不等于,== 等于
++自加运算符,--自减运算符(位于变量前,先进行自运算,在进行其他运算,若位于变量后,则先进行其他运算。)
3,循环
for循环
for(表达式1;逻辑量;表达式2)
表达式1:给循环变量赋值,只执行一次
逻辑量:循环条件,一般为关系表达式和逻辑表达式,为真(1)怎进入循环,为假(0)结束
表达式2:循环变量变化区,通常用来修改控制变量的值,循环体语句执行完,就会执行语句2,再进行第二次循环。
while循环
while(逻辑量)
循环体语句;
while语句执行的时候,只要满足表达式条件,循环就会一直进行下去,直到条件不满足,跳出循环.
do......while循环
do
{
循环体语句;
}
while(逻辑值);
执行循环体语句,当循坏条件成立时,继续执行循环体语句;当循环条件不成立时,循环结束。因此,也成为直到型循环。
4.分支和跳转
if语句(通过判断条件产生分支)
if (关系表达式)
语句;//(可以为复合语句但该处只能有一条语句);
分支else 语句(与if类似 )
if (关系表达式)
语句1;
else
语句2;//一个if仅可与一个else搭配
多分支else if语句(与 if 类似)
if (关系表达式)
语句1;
else if
语句2;//一个if可与多个else if搭配
countine语句
1,在3种循环都可使用,执行到该语句时,就会跳过本次迭代的剩余部分,并开始下一轮的迭代
2,如果在嵌套循环内里使用,则只会影响包含该语句的内层循环
break语句
1,程序在执行到循环中的break语句时,会终止包含它的循环,并去执行下一阶段,。
2,break 语句位于嵌套循环内,它只会影响包含它的当前循环
5.函数
函数是一个大型程序中的某部分代码, 由一个或多个语句块组
成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软
件库。函数是C语言的模块,一块块的,有较强的独立性,可以相互调用在一个程序中一定要有一个main函数,可以有其他函数,当程序运行的时候,进入主函数,期间如果有其他函数,程序会按顺序调用其他函数,从而可以更加清楚的看懂代码的运行过程。
6.数组
数组可以储存一系列相同类型的元素(可以理解为带内内存的指针)
例如 int a[100]; 在这里a数组储存100个int型元素,在这里 [] 这个符号就是告诉计算机 a 是一个数组。数组可以储存数据类型相同的一系列元素,所以初始化数组必不可少的一步就是告诉计算机这个数组储存的数据类型。(a[0]是数组的第一个元素。)
结构体
从本质上讲是一种自定义的数据类型,只不过这种数据类型比较复杂,是由 int、char、float 等基本类型组成的。你可以认为结构体是一种聚合类型。
结构体的一般定义形式为:struct是关键字,是结构体类型的标志。
struct 结构体名
{
成员1类型 成员1名;
成员2类型 成员2名;
....... ......
};
struct 结构体名 结构体变量名;
结构体的初始化
1.将各成员的初值,按顺序地放在一对大括号{}中,并用逗号分隔,一一对应赋值。比如初始化Student结构体变量stu,只能在定义变量的同时进行初始化赋值。
在C语言中,变量的定义是分配存储空间的过程。一般的,每个变量都具有其独有的存储空间。
不过联合体中所有变量共用一个存储空间。修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。
union 联合名
{
类型说明符 成员名
};
8.指针
指针,也就是内存的地址;所谓指针变量,也就是保存了内存地址的变量。指针的值本是指针变量自身所储存的数值(指针仅能储存同一类型的地址)
变量类型 * 指针名字
例子:int p;int *p1=&p;
p1可以理解为该房间的门牌号,而p是这个房间里储存的东西。(房间里的东西被替代后门牌号并不会改变。)
9.宏定义
C 语言提供的预处理功能有三种,分别为宏定义、文件包含和条件,宏定义仅仅是在C预处理阶段的一种文本替换工具,通过预处理让整个程序在全局定义一个函数,功能,库或者其他。在预处理工作过程中,代码中所有出现的“宏名”,都会被“替换文本”替换。这个替换的过程被称为“宏代换”或“宏展开”(macro expansion)。“宏代换”是由预处理程序自动完成的。切记在写的时候 要注意对齐,否则空格也会被记录在您的代码中,也就是说行与行之间的空格也会被作为替换文本的一部分
宏名如果出现在源程序中的“”内,但“”不会被当做宏来进行宏代换。宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。
宏定义的用法还有好多好多,大家还可以深入研究。