文章目录
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)]