一.基本数据类型.常量.变量.运算符
1.数据类型 int. short.char.long.float.double.
2.常量的分类.(1).整型常量 (2)浮点型常量 (3)字符常量 (4)字符串常量.
3.常量的特性:常量存储在常量区,常量区的内容不可被更改.
4.变量的定义与本质.数据类型 变量名 = 初值 . 本质变量就是一个容器.
5.变量名的命名规范
6.运算符.
(1)赋值运算符 =
(2)算数运算符 + - * / % ++ --
(3)复合运算符 += -+ *= /= %=
(4)关系运算符 > < >= <= != ==
(5)逻辑运算符 && || ! 注 :逻辑与与逻辑或的短路现象
(6)条件运算符 a > b ? a : b;
(7)位运算符 & | ^ ~ << >>
7.表达式(有无返回值) ,最简单表达式:常量.
8.基本的输入输出函数 %d %o %0x(%x) %ld %lu %c %f %s %p
二.分支结构
1.BOOL
2.if语句. (1) if (2) if ... else (3) if ... else if ..... else
3.switch...case
(1)case + 整型常量表达式
(2) 如果要在case分支中定义变量要加大括号{}
(3)default
(4)break : 跳出分支
三.循环结构
1.循环必备四个条件:
(1)循环变量初始化
(2)循环条件
(3)循环增量
(4)循环体
执行流程: (1) --- (2) --- (4) --- (3) --- (2) --- (4) --- (3) --------- (2)
2.for循环 ---- 循环嵌套
3.while循环 与 do......while循环
4.for 与 while, do...while的区别
(1) for循环 :多用于知道循环次数,既循环次数确定的情况下.
(2)while循环:do..while 循环: 多用于不确定循环次数的需求.
(3)for循环可以转化为while和dowhile循环,但是不能反过来.
5.while和do ..while区别:
(1)while:先判断循环条件,在执行循环体.
(2)do..while :先执行一次循环体,然后在判断,即使循环条件不满足,循环体也会执行一次.
6.break与continue的区别
7.如何取出一个数各个位上的数. % 与 / 的应用
四.数组
1.数组的作用
2.数组的定义.数组的强大是和循环分不开的.
3.如何取数组元素? 下标
4.遍历
5.冒泡排序 升序降序排序
(1)外层循环控制趟数,外层减一, 可减可不减,-1目的是提供程序的执行效率.
(2)内层循环控制比较次数. 内层减一,必须减,防止比较时越界.
(3)内层 - i ,可以不减, -i目的是缩小无序区的范围,提高程序的执行效率.
6.字符数组 - 字符串
7.字符串处理函数
五.数组高级
1.二维数组的本质 --- 数组里面套数组
2.多维数组简单应用
六.结构体(VIP)
1.结构体存在的意义.
(1)自定义的数据类型,可以用来定义变量
(2)结构体和数组一样,都是大容器,可以存储多个变量,但是结构体比数组灵活,可以存储不同类型的数据
2.结构体的定义.
3.如何通过结构体变量访问结构体成员.
4.typedef 类型重定义
5.结构体的嵌套
6.比较局部获取整体的思想.
7.结构体按照成员进行排序
七.函数
1.函数的作用:
实现代码的模块化管理.把复杂的逻辑进行拆分,而主函数只起到宏观调控的作用即可.
2.函数的定义. 返回值类型 函数名(形参列表){函数体(即函数的实现内容)}; 四种形式.
3.函数的分文件形式.(.h文件存放函数的生命, .m文件存放函数的实现.)
4.(1)返回值类型 (2)形参(3)实参(4)函数声明,函数实现,函数体,函数名
(1)实参:函数调用时给定的参数叫做实参,是一个唯一确定的数据.
(2)形参:形式上的参数,在函数定义时,给定的参数叫做形参,一个一个的变量,存储的数据在函数调用之前未知.
(3)实参向行参传递的过程是一个拷贝的过程.
5. return关键字的作用.
(1) 将函数的返回值给主掉函数.
(2) 结束当前函数的执行.
6.函数调用: 函数名 + 实参列表
7.函数的嵌套调用
函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函数).但不能嵌套定义(不能在一个函数内部定义另外一个函数).
8.递归简单应用.
9.static 作用.
八.进制转换(理解)
1.进制转换
2.位运算符
3.栈区的内存分配原则(VIP).
4.如何看程序的执行,学会打断点.
九.指针
1.指针的作用.
2.指针的定义.
3.指针的赋值.
4.指针重指向.
十.指针高级
1.传值和传址
(1).传值.传递的时变量中的内容.函数内部改变不会影响外部的变量.
(2).传地址.传递的是变量的地址,函数内部改变会影响外部的变量.
2.指针与结构体的关系.
3.如何通过结构体指针访问结构体成员.
4.const的作用.
const 安全性 修饰的变量是readonly,只能读取数据,不能修改.
<span style="font-size:14px;"> /** * p 是指针变量,存储p地址 * *p 是指向变量指向的空间,也就是变量a的空间 * 面试题:请问const修饰的谁不可变? * 1.const int *p = &a;//修饰*p,即*p不可变,不能通过指针变量p修改指向空间的内容,但是指针变量p可以重新赋值,重指向. * 测试1: *p = 10; p = &b; * 2.int const *p = &a;//修饰*p,即*p不可变,不能通过指针变量p修改指向空间的内容,但是指针变量p可以重新赋值,重指向. * 测试2: *p = 10; p = &b; * 3.int * const p = &a;//修饰p,即p不可变,能通过指针变量p修改指向空间的内容,但是指针变量p不可以重新赋值,不能重指向. * 测试3: *p = 30; p =&a; * 4.const int * const p = &a;//修饰*p以及p ,都不可以改变,不能通过指针变量p修改指向空间的内容,指针变量p也不可以重新赋值,不能重指向. * 测试4: *p = 10; p =&a; * */</span>
十一.动态内存分配
1.存储区的划分.堆区
2.在堆区开辟空间, malloc ,calloc ,realloc, 回收空间.
3.标记删除.
4.宏. 无参宏 和 有参宏 宏的注意事项(vip)
十二.函数指针(vvip)
1.函数指针的定义
<span style="font-size:14px;"> /** * 函数指针:指向一个函数的指针变量.' * 函数的类型:返回值类型+参数 * 函数指针变量类型: int (*)(int x, int y) * 指针变量的名字:max * 初始值:NULL * max 可以指向一个返回值是int型并且有两个int型的参数的函数. */</span>
2.如何通过函数指针调用函数
3.回调函数
4.枚举 enum
5.条件编译.#include 与 #import的区别
#import 相比 #include 能够防止重复导入,引起交叉编译.