C语言思维导图
2022-05-06 10:46:37 31 举报
AI智能生成
c
作者其他创作
大纲/内容
操作系统给每个存储单元分配了一个编号,从0x00 00 00 00 ~0xff ff ff ff这个编号咱们称之为地址
指针变量:是个变量,是个指针变量,即这个变量用来存放一个地址编号在32位平台下,地址总线是32位的,所以地址是32位编号,所以指针变量是32位的即4个字节
指针概念
在程序中,引用变量的方法1:直接通过变量的名称int a;a=100;2:可以通过指针变量来引用变量int *p;//在定义的时候,*不是取值的意思,而是修饰的意思,修饰p是个指针变量p=&a;//取a的地址给p赋值,p保存了a的地址,也可以说p指向了a*p= 100;//在调用的时候*是取值的意思,*指针变量 等价于指针指向的变量
指针与变量的关系
变量存放在内存中,有地址编号,咱们定义的数组,是多个相同类型的变量的集合,每个变量都占内存空间,都有地址编号指针变量当然可以存放数组元素的地址
数组元素与指针的基本关系
方法1: 数组名[下标]int a[10];a[2]=100;方法2:指针名加下标int a[10];int *p;p=a;p[2]=100;//因为p和a等价
方法3:通过指针运算加取值的方法来引用数组的元素int a[10];int *p;p=a;*(p+2)=100;//也是可以的,相当于a[2]=100解释:p是第0个元素的地址,p+2是 a[2]这个元素的地址。对第二个元素的地址取值,即a[2]
数组元素的引用方法‘
指针可以加一个整数往下指几个它指向的变量,结果还是个地址前提:指针指向数组的时候,加一个整数才有意义
两个相同类型指针可以比较大小前提:只有两个相同类型的指针指向同一个数组的元素的时候,比较大小才有意义指向前面元素的指针 小于 指向后面 元素的指针
两个相同类型的指针可以做减法前提:必须是两个相同类型的指针指向同一个数组的元素的时候,做减法才有意义做减法的结果是,两个指针指向的中间有多少个元素
指针的运算’
指针和数组的关系1:指针可以保存数组元素的地址2:可以定义一个数组,数组中有若干个相同类型指针变量,这个数组被称为指针数组指针数组的概念:指针数组本身是个数组,是个指针数组,是若干个相同类型的指针变量构成的集合注意:一般遇到这样的叠词,本质就是后者
指针数组的分类字符指针数组char *p[10]、短整型指针数组、整型的指针数组、长整型的指针数组float型的指针数组、double型的指针数组结构体指针数组、函数指针数组
指针数组
指针的指针,即指针的地址,
二级指针
在文字常量区开辟了一段空间存放字符串,将字符串的首地址付给str堆:使用malloc函数在堆区申请空间,将字符串拷贝到堆区
初始化:字符数组、指针指向的字符串:定义时直接初始化char buf_aver[]=\"hello world\";char *buf_point=\"hello world\
字符串和指针
组指针的概念:本身是个指针,指向一个数组,加1跳一个数组,即指向下个数组。数组指针的作用就是可以保存二维数组的首地址3、数组指针的定义方法:指向的数组的类型(*指针变量名)[指向的数组的元素个数]int (*p)[5];//定义了一个数组指针变量p,p指向的是整型的有5个元素的数组p+1 往下指5个整型,跳过一个有5个整型元素的数组
数组指针
指针
构造类型:不是基本类型的数据结构也不是指针,它是若干个相同或不同类型的数据构成的集合常用的构造类型有数组、结构体、共用体数组用于保存多个相同类型的数据结构体用于保存多个不同类型的数据
先定义结构体类型,再去定义结构体变量struct 结构体类型名{成员列表};
无名结构体的定义在定义结构体类型的时候,没有结构体类型名,顺便定义结构体变量,因为没有类型名,所以以后不能再定义相关类型的数据了struct {成员列表;}变量1,变量2;注意:无名结构体由于没有结构体名,所以定义完之后是无法在定义结构体变量的,只能在定义类型的同时定义结构体变量
给结构体类型取别名通常咱们将一个结构体类型重新起个类型名,用新的类型名替代原先的类型typedef struct 结构体名 {成员列表;}重新定义的结构体类型名A;注意:typedef主要用于给一个类型取别名,此时相当于给当前结构体重新起了一个类型名为A,相当于 struct 结构体名,所以如果结构体要取别名,一般不需要先给结构体定义名字,定义结构体变量时,直接使用A即可,不用加struct
结构体概念
结构体变量的定义和初始化结构体变量,是个变量,这个变量是若干个数据的集合注:(1):在定义结构体变量之前首先得有结构体类型,然后在定义变量(2):在定义结构体变量的时候,可以顺便给结构体变量赋初值,被称为结构体的初始化(3):结构体变量初始化的时候,各个成员顺序初始化
在结构体中嵌套结构体
相同类型的结构体变量可以相互赋值
结构体变量的初始化和使用
结构体数组是个数组,由若干个相同类型的结构体变量构成的集合1、结构体数组的定义方法1 struct 结构体类型名 数组名[元素个数]
结构体数组元素的引用1 数组名[下标]3、结构体数组元素对成员的使用1 数组名[下标].成员
结构体数组
即结构体的地址,结构体变量存放内存中,也有起始地址咱们定义一个变量来存放这个地址,那这个变量就是结构体指针变量。
结构体指针变量的定义方法:1 struct 结构体类型名 * 结构体指针变量名;
结构体指针变量对成员的引用1 (*结构体指针变量名).成员2 结构体指针变量名‐>成员
结构体指针
结构体内存分配
结构体
C语言思维导图
0 条评论
回复 删除
下一页