1. 指针:
指针变量的值被修改,指针变量的指向也会被修改(指针变量存储了谁的地址,指针变量就指向谁)。
2. 指针变量
特点:
可以用来存储地址
值可以变化(指向可以更改)
“指向”特定类型的数据
多个指针变量可同时指向一个变量
int* p=(int )malloc(4); // (堆空间) 释放 free(p)
野指针:
int *p; //p指向不明确的指针。
空指针:
值为null的指针 //不能对空指针进行解地址
3. 内存5大分区:(根据处理机制不同)
栈区:由系统自动分配空间,自动回收空间
遵循的原则:先进后出。
作用域:使用范围
堆区:程序猿 手动申请空间,手动释放空间//内存泄露
malloc(申请堆空间) free(释放堆空间)
new(申请堆空间) delete(C++)(释放堆空间)、、
全局数据区(静态数据区):不属于任何函数体的变量称为全局变量。程序结束时回收。
文字常量区:
存储代码区:
4. 指针和数组(重点)
指针数组:
数组名可以用于表示数组中首元素的地址 数组名不能做左值
指针加一表示指针向下移动移动一个元素
指针减一表示指针向上移动移动一个元素
两指针相减得到的是两个指针之间相差的元素个数。
数组指针:
时间: 2024-10-31 20:47:02