计算机的存储机制
指针
指针就是指针变量,用来存储其它数据单元(变量,数组,结构体,函数等)的首地址。是对数据单元的间接访问。若指针存放了某个数据数据单元的首地址,则这个指针指向这个数据单元,如果存放的值为0,则这个指针为空指针
何种类型的指针在固定的系统下所占的字节是固定的
运行代码及结果
由上述结果可以看出,int型指针和char型指针所占的大小是相同的,即在固定的系统下指针所占的字节是相同的。
注意:在定义指针的时候使用的是
int *p;
但也有 int* p 这种形式,但是这种形式会产生歧义
int* p,p1;会被误以为 p和p1都是int* 形式的,但其实p是int* ,而p1是int型的
指针的操作
int *p; p++; //p是int型的指针,加的是一个int型的大小,并不一定是1
对于单独的变量而言,一般不执行p++;p++之后会变成野指针,一般指针++在数组中
数组与指针
数组名几位指向该数据类型的指针,数组的定义等效于申请内存,定义指针和初始化
c[0] ====== *c
c[1] ====== *(c+1)
c[2] ====== *(c+2)
不可以只定义指针,不给指针赋初值(野指针 如下代码)
int *p; *p;
指针的应用
参数传递
值传递具有安全性(子函数中值的改变不会影响主函数中值的改变)
指针传递
1、在子函数中操作的是原先的数据,而值传递子函数中修改的是副本
2、使用指针传递输出参数,利用主函数和子函数使用同一套数据的特性,实现数据的返回,实现多返回值函数的设计