您的位置:首页 > 编程语言 > C语言/C++

C语言 要点

2016-03-26 22:25 246 查看

C语言 要点

1,编辑、编译、链接三大过程

2,printf、scanf、fprintf、fscanf、sprintf、sscanf

3,面试的时候必须要注释

4,全局变量有定义与声明的区别,局部变量声明与定义都是定义

5,声明可以有多个,定义只能有一个

6,printf不会进行数据类型转换

7,赋值会自动转换,+-*/ 自动转换 与 强制转换

8,常量(#define const),变量

9,标识符用于函数名称,变量名称

10,代码要注意规范

11,scanf(“a = %d”,&a);

12,printf、scanf格式控制的说明

13,C语言把所有设备都当作文件处理

14,优先级、结合性、解析复杂表达式

15,赋值运算、嵌入式赋值,赋值会自动转换数据类型

16,** –,位运算

17,goto、while、do while、for、递归,任何循环转换为递归的能力

18,break、continue 特点、goto 特点

19,逻辑表达式、关系表达式

20,注意逻辑表达式短路效应

21,整数的极限 limits

22,八进制0、十进制、十六进制0x开头

23,,1、10u、10l,注意整数常量的后缀

24,处理海量数据,long long

25,long double %lf,打印浮点数,超过8个字节就是%llf、%Lf

26,short int 等价于 short、 double float 等价于 double

27,必须掌握中文处理、宽字符、宽字符串增删改查

28,缓冲区的概念,sizeof不是函数而是 运算符

29,return,函数参数会自动进行数据类型转化

30, (int)10.9 强制转换

31,数组需要理解顺序排列、指针访问、选择排序、冒泡排序、插入排序

32,指针循环数组 for(int *p = a;p < p + a;p++)

33,函数一定要有返回值,函数参数传递的顺序

34,数组是参数唯一没有副本机制的,传递地址,数组,退化指针,指针数组数组,二级指针

35,函数改变一个外部变量,需要地址,改变一个外部指针,需要二级指针

36,快速排序法

37,可变参数的函数,毁掉函数学会实现劫持,C语言内联函数就是define,提升效率

38,指针是一种数据类型,类型决定了步长、解析方式

39,*p++ ++*p 指针的运算,+ - 指针的运算与类型密切相关

40,指针遍历数组,二级指针遍历指针数组,指向函数指针的指针遍历函数指针数组

41, int a[10] , int * int * a[10] , int **

42,int a[3][4] , int(*)[4]

*a、&a、a的差别

43,char *p=”213”; char str[100]=”5522” 理解指针与数组的区别,字符串\0结尾 char *p = strr;

44,字符串strcpy、strstr、str、cat、memset、memcpy、puts、gets、printf、scanf、sprintf、sscanf、strcmp

45,#define #include #undef #if #else #elif #end #ifdef #ifndef

46,#define 可以替换,#define与#ifdef配合定义开启功能 #define X(n) (n)*(n)(n) 带参数的宏定义 x(3)替换为3*3*3 = 27

注意: #define y(m) m*m*m –> y(1+2) 替换为 1+2*1+2*1+2 = 7

47,# 标识符添加”” ##链接标识符,#define函数要用\换行

48,头文件一般只能存放声明,避免重复包含,存放定义时,应该加上预编译防止重复包含

49,C语言结构体不可以有方法,C++可以,C语言结构体内部包含函数指针

50,结构体只有初始化可以直接赋值,可以赋值另外一个结构体变量的值 ->访问方式

51,掌握枚举体、共用体(嵌入式)、理解位域的概念

52,realloc、malloc、calloc,三大内存分配方式

53,数组有点 链表的优点

54,函数指针 可以实现回调、劫持

55,指针数组,数组指针

56,声明四大变量 auto 、 register 、 static 、 extern

57,const 限定不能直接赋值

58,VC只是建议,GCC就是强制,volatile 会自动从内存读取,防止变量被修改而不知道

59,std 标准库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: