为了测试自己学习的水准,开始C语言的考试,于是开始复习。
一、基础部分
1.C语言之父--丹尼斯·里奇。他的好友肯·汤普森一起在贝尔实验室。
2.目前所学的版本是C99,51单片机用的是C89。语法差不多,有一点区别。
3.C语言编译流程,.c文件预处理成为.i文件,编译成为.s文件,汇编成为.obj文件,链接成为.exe文件,执行.exe文件。
五步:预处理、编译、汇编、链接、执行
4.主函数是程序最先运行的函数,只能有一个。int main( ){ return 0;//表示程序结束了}
5.常用函数:printf输出,scanf输入
6.格式占位符 %d整数,%f小数,%lf(double类型输入的时必须用的),%c字符,%s字符串,%zu获取字节
7.变量,相当于一个容器,可以存储数据。相同类型可多次赋值。先声明后赋值再使用。
8.常量,字面量常量123,234,235,'a';标识符常量#define PI 3.14 ,const。
9.进制的转换。在C99当中,可以有二进制、十进制、八进制、十六进制。int num=0b1101,num1=0x3a,
(1)二进制与十六进制的转换。
二进制转十六进制,每四位一组化为十进制,可得十六进制。
(2)十六进制转二进制,也是如此。
0x3a转换二进制:0b11 1010
10.整数的原码、反码、补码一样,三码合一。负数的反码除了符号位按位取反,补码是反码+1.
11.数据类型。
整型 int(signed int)、 long(signed long %ld)、 longlong(signed longlong %lld)、short(signed short 格式占位符%hd)
无符号整型 unsigned int(%u) unsigned long(%lu)、unsigned long long (%llu) 、unsigned short(%hu)
格式占位符 %d(整数)
默认都是有符号的。
long long num=12LL,需要有后缀long num1=23L; unsigned long long num3=233ULL。
浮点型 单精度float 双精度double、 long double 小数的自变量默认double型。
long double %Lf
输入当中scanf( )格式占位符只能是%lf.
字符型 char %c
12. sizeof()计算类型、变量、自变量、表达式所占内存大小字节byte
13.强制转换 double a=12.34; int result=(int)a;
14.运算符。
数学运算符 + - * / % ++ --
比较运算符 == >= <= > < !=
逻辑运算符 && || !
位运算符 :按位与&、按位或 |、按位异或^(相同0,不同1)、按位取反~、按位左移<<、按位右移>>
赋值运算:= += /= %= ^= <<= >>= &= |= *=
三元运算符 x>y?x:y;
15.条件判断语句,单分支if else,多分支if( ) else if( ) else{ },switch语句
循环语句while,do while ,for
while(1)死循环。
16.作用域scope,声明函数内的变量赋值不能和主函数共用。
17.break可以和switch、 循环语句使用。
continue和循环语句一起使用,结束本次循环,继续下次循环
goto跳转语句
二、高级部分
1.数组。数组相当于容器,可以承载相同类型的元素,在内存当中紧密排列。
char[4]={'a','b','c','\0'};
2.在C语言中是没有数组类型的,要想传递数组,需要用到指针。
3.数组长度就是元素的个数,等于sizeof(arr[ ])/sizeof(int).
4.二位数组的长度:arr[3][4] 三行四列的二维数组
第一维度的长度 rows=sizeof(arr)/sizeof(arr[0])
第二维度的长度 cols=sizeof(arr[0])/sizeof(int)