摘要:
指针数组 本质是数组 只是每个元素的类型是指针。 图示 代码示例 #include <stdio.h> int main() { int num1 = 10; int num2 = 20; int num3 = 30; int num4 = 40; int *arr[4] = {&num1, &nu 阅读全文
摘要:
内存的存储 1、是以一个字节为一个编号,也就是8位合在一起给一个编号,不是0,1就给编号。内存分为很多个单元,每个单元就会分配一个编号。 地址 内存单元的一个编号。而指针和地址一个概念的。也就是说指针就是地址。 - 内存单元的编号,是一个从0开始的非负整数 - 范围:cpu对内存是通过控制、数据、地 阅读全文
摘要:
函数参数 普通变量作为函数的参数 代码示例 #include <stdio.h> // 声明函数 void ChangeNumValue(int a) { a = 10000; } int main() { // 定义变量 int num = 10; // 调用函数 ChangeNumValue(n 阅读全文
摘要:
数组定义 同一类型的变量——元素(element)集中在一起,在内存上排列成一条直线,这就是数组。 元素的类型既可以是int类型,也可以是double类型。 数组的声明 数组的声明通过指定的元素类型,变量名,元素个数。另外[ ]中的元素个数必须是常量。 图示: 数组的特点 类型相同的元素组成的集合。 阅读全文
摘要:
数据类型 数据类型的本质就是一个模子。 数据类型代表需要占用的内存的大小。 图示: 变量 变量的本质是内存中一段连续存储空间的别名。 程序中通过变量来申请并且命名存储空间。 通过变量的的名字可以使用存储空间。 初始化变量 软件在运行前需要向操作系统申请存储空间,在内存空间足够空闲时,操作系统将分配一 阅读全文
摘要:
动态内存分配 传统数组的缺点 1.数组长度必须事先指定,而且只能是常整数,不能是变量。 代码示例 例子int a[5]; //必须事先指定,而且只能是常整数int len = 5; int a[len];//error 2.传统形式定义的数组,该数组的内存程序员无法手动释放数组一旦定义,系统为数组分 阅读全文
摘要:
条件判断 if-else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。 语法: if(boolean_expression) { /* 如果布尔表达式为真将执行的语句 */ } else { /* 如果布尔表达式为假将执行的语句 */ 阅读全文
摘要:
为什么需要结构体 为了表示一些复杂的事物,而普通的基本类型无法满足实际要求。 代码示例 结构体 定义结构体方式 使用结构体 1、赋值和初始化 定义的同时可以整体赋值。 如果定义完之后,则只能单个赋初值。 2.如果取出结构体变量中的每一个成员 结构体变量名.成员名 指针变量名 成员名 (更常用) 它会 阅读全文
摘要:
函数的定义 1.逻辑上:能够完成特定功能的独立的代码块。 2.物理上:能够接收数据【也可以不接收数据】,能够对接收的数据进行处理【也可以不对数据进行处理】,能够将数据处理的结果返【也可以没有返回值】。 3.函数定义的本质:详细描述函数之所以能够实现某个特定功能的具体方法。 语法 返回值类型 函数名( 阅读全文
摘要:
变量属性 C语言中的变量可以有自己的属性,在定义变量的时候可以加上**"属性**"关键字。 属性关键字指明变量的特殊意义。 auto关键字 auto是C语言中局部变量的默认属性。 auto表明将被修饰的变量存储于栈上。 编译器默认所有的局部变量都是auto的。 代码示例 void f() { int 阅读全文
摘要:
多级指针 多级指针案例1 # include <stdio.h> int main(void) { int i = 10; int * p = &i; //p只能存放int类型变量的地址 int ** q = &p; //q是int **类型,所谓int**类型就是指q只能存放int*类型变量的地址 阅读全文