typedef&&static&&指针(内存,地址)&&结构体2022.1.6

文章详细阐述了C语言中typedef用于类型定义,static如何修饰局部和全局变量改变其存储位置和生命周期。指针的概念、内存布局(栈、堆、静态区)以及地址的表示。此外,还讨论了extern的作用以及#define用于定义常量和宏的方式。结构体作为自定义类型在内存中的表示也被提及。
摘要由CSDN通过智能技术生成

typedef&&static&&指针(内存,地址)&&结构体

typedef:对类型定义,与变量无关

static

//1修饰局部变量

// ???????
// static在局部变量时命名直接跳过
// 地址在命名时依然如此,不创建新地址
// 进变量域跳过命名(因为已经存在),出变量域不销毁
// 延长了局部变量的生命周期
//
// 改变了变量的存储类型
// 本来局部变量是放在栈区的,
// 被static 修饰后存放在内存的静态区了
// 因为存储类型的改变,导致生命周期变长
// 作用域指的是使用的范围,他还能是在局部使用
//
// 董泽: 不是出了作用域就不能用了吗
//————————————
//@董泽 但是循环还会再此进入它运行的作用域啊 普通的局部变量出了作用域就销毁 所以就算循环回去了也无法再作用了
//

//2修饰全局变量

// 全局变量具有外部链接属性(使用extern在另外源文件引用并且使用)
// 如果用static修饰全局变量,将外部链接属性变成了内部链接属性,
// (外部想链接是连接不到的)
// 此时的全局变量只能在自己的.c文件中使用
// 其他文件无法链接使用
// “感觉”是影响了作用域(”变小“),但本质是改变了链接属性(内外)
//
// 加上static:其他源文件可以命名同名函数了,因为其他源文件用不到
//

修饰函数

基本同等于修饰全局变量

//静态区// 栈区// 堆区(附static结合理解)

// 静态变量
// 全局变量
// 静态区的变量除了作用域不销毁,只到程序结束才销毁
//
//

//extern(结合static理解)

//声明外部符号的

// 1变量

// 2函数

// extern int Add(int, int);
// 声明函数时只需要说明类型,不需要指出变量
//

//define定义常量和宏

//

// 常量

// define MAX 1000
// (一般大写)
//

// 定义:宏:

// eg;define ADD(x+y) ((x)+(y))
//无类型, 无返回
//相当于切换成:
// a = 10; b= 20;
// ret=ADD(a,b);
// 就相当于//int ret = ((x)+(y))
//

指针

内存

32位机器//

// 32位:地址的序号:232个序号----管理232个字节的空间;4GB,内存条超过了?也没用,用不到
//(32位电脑上限是4GB)
//
// 内存()监视吗?里面的,没图片很烦
// 内存指针-内存中存放的数据-提供参考价值
//
//内存近小的取第一位

b0 b1 b2 b3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W4bDnC1T-1673160991426)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106111914771.png)]

地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2zTbdlhy-1673160991428)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106112132072.png)]

打印用%p

int*类型:

同时,地址也可以被当作变量储存,pa是用来存放指针的

(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106112325769.png)

地址不能随便指定,是编译器派给你的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ccnV6TC5-1673160991429)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106112703264.png)]


解引用(操作符*;)&取地址(操作符&)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LESqQHU9-1673160991430)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106112904510.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7VEQVcv5-1673160991430)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106113117712.png)]

%zd打印sizeof

类型*,在32位机器占4字节,在64位字节占8字节

结构体

自定义类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7aXqjZF9-1673160991430)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106115952155.png)]

传参传的依然是地址,进而访问需要解引用[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0bwVW8L-1673160991430)(C:\Users\10169\AppData\Roaming\Typora\typora-user-images\image-20230106120131531.png)]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值