打开网易新闻 查看精彩图片

一、C语言基本常识
1、语言由函数组成

2、main是程序入口

3、C语言中不能出现中文或中文字符 (注释和字符串除外)

关键字 :C语言提供表示特殊含义的单词。

特点 : 1、 全部小写 ;2、在Xcode中是紫褐色。

标识符 :程序员自己在代码中为某些东西起的名字。

规则 : 1、字母、数字、下划线组成;2、严格区分大小写;3、不能以数字开头;4、不能与关键字重名。

规范:驼峰标识。

注释:对代码的解释说明,它是程序员看的,它不参与编译。

包括单行注释 和 多行注释(多行注释可以嵌套单行注释,但多行注释不能嵌套多行注释)。

数据:存储时长:静态数据:存储在硬盘上的数据;动态数据:内存中的数据。

常量:不可以改变的量。

变量:可以改变的量。

二、数据类型

1、基本数据类型

int——4字节——%d %i

float——4字节——%f

double——8字节——%lf

char——1字节——%c

枚举:枚举的本质是整型(enum)

场合:当某个东西只有几个固定取值的时候

特点:先定义枚举类型,根据枚举类型定义枚举变量

2、构造类型

(1)数组:用来从年初相同数据类型的多个数据的集合

定义:数据类型 数组名称 [元素个数]

遍历:把所有的元素都拿出来看一下(循环)

(2)结构体:多个数据放在一起可以表示特定的含义组成结构体

特点:先定义结构体类型,然后定义结构体变量

结构体与函数:如同基本数据类型与函数的关系

三、指针:指针就是地址

1、指针变量:用来存放地址的变量。

(1)指针只有初始化了才可以访问它所指向的存储空间;

(2)如果一个指针没有初始化,它里面是垃圾值,称为野指针;

(3)不能直接赋值一个整形数。

2、基本数据类型的指针:指向基本数据类型的指针。

格式:数据类型 * 指针变量名称。

3、结构体的指针:指向结构体类型的指针。

格式:结构体类型 * 指针变量名称。

访问其所指向的结构体成员方式; (*指针变量名称).成员名称;指针变量名称->成员名称。

4、数组指针:指向数组的指针;

格式:所指向的数组的数据类型 (*指针变量名称)[所指向的数组的元素个数]。

这种指针与二位数组名是等价的。

5、函数指针:指向函数的指针。

格式:所指向函数的返回值类型(*指针变量名称)[所指向函数的形参列表]。

通过函数指针调用函数;(*指针变量名称)(实参列表);指针变量名称(实参列表)。

四、运算符

1、算数运算符

2、赋值运算符

3、自增自减运算符

++a , a++

--a , a--

4、sizeof运算符:用来计算变量、常量、数据类型所占用存储空间的字节数

sizeof(常量) sizeof常量

sizeof(变量) sizeof变量

sizeof(数据类型)

5、逗号运算符

1、运算顺序是从左到右

2、逗号表达式的运算结构为最后一个表达式的值

6、关系运算符

7、逻辑运算符

8、三目运算符

条件表达式 ? 结果1 : 结果2

优先级:一般优先级越高越先进行计算

结合方向:当优先级相同时,计算方向(从左到右,从右往左)

五、 流程控制:控制程序的执行流程

1、顺序结构:按照从上到下的顺序执行

2、分支结构:相当于岔路口,当条件满足的时候就执行某段代码

(1)if 语句:

◎ if 必须以if 开头

◎ if 可以有多个else if

◎ if 语句最多有一个else

◎ if 语句中对多只有一个代码块会被执行

◎ 如果有 else 那么必然有一个代码块会被执行

(2)switch 语句:当变量与否个常量相等时执行这个常量所对应代码块中的语句

打开网易新闻 查看精彩图片

注意点:1、仅支持整型数;2、case 后面只能是常量或常量表达式;3、case 后面的常量的值不能相同;4、结束条件 遇到break 或 "}"。

3、循环结构:当条件满足就会一直执行循环体中的代码,直到条件不再满足为止

(1)while 语句:当条件满足的时候就执行while后面大括号中的语句

(2)do while:循环体中代码至少执行一次

(3)for语句:

打开网易新闻 查看精彩图片

(4)break:1、在switch语句中用来结束switch语句;2、用在循环结构中,用结束当前的循环语句。

(5)continue:只能用在循环结构中,跳过本次循环体重continue后面的语句,进入下一个条件判断。

六、函数 : 完成特定功能的代码段

定义格式:

打开网易新闻 查看精彩图片

函数声明:告诉编译器该函数已经存在了(函数的声明可以有多个,定义只能有一个)。

函数参数:

1、基本数据类型作为函数参数传递是值传递;

2、数组作为函数参数传递是地址传递;

3、指针作为函数参数传递是地址传递;

4、结构体作为函数参数传递与基本数据类型一致。

函数返回值:函数完成功能后要返回给主调函数中的数据。

1、返回值的类型必须与返回值的类型一致;

2、一个函数只能有一个返回值;

return 作用:返回值给主调函数,结束函数。

七、预处理指令:在编译之前需要进行解析处理的指令

1、宏定义:

不带参数的宏定义:在编译之前,使用宏名后面值,替换代码中所有出现宏名标识的地方

带参数的宏定义:把参数带入宏名表达式中,然后替换宏调用的地方

2、条件编译:在编译的时候,当条件满足时就编译某段代码

#if开头 #elif #else #endif结尾

#ifdef #endif

#ifndef #endif

3、文件包含:

#include——拷贝所包含的文件内容到#include指令所在地方。

#include " "——包含自己的文件。

#include < >——包含系统的头文件。

4、进制:

十进制

二进制:0b 或0B

八进制:0——%o 或 %0

十六进制:0x或0X——%x或%X

位运算:& | ^ ~ >> <<