指针理解:
指针使用的两种场景:1.传递、2.偏移。如果不是这两种场景,就不要用指针。
指针是专门用来存放地址的变量。
指针的内容就是地址。在win32程序中,所有地址都是4个字节的。所以所有类型的指针变量都占4个字节。
指针就是一个变量,指针本身也存在内存中。指针也有自己的地址。
一级指针的使用:传递
在子函数中只要拿到i的地址。
#define OUT
void change(OUT int* p){ //子函数中定义了一个指针类型的变量p。为其分配了4个字节。
*p=5; //通过间接访问i。
}
void main(){
int i=3;
change(&i); //把i的地址传递过去。
}
一级指针的使用:偏移(即,一维数组与指针的关系)
void fun(
int *p){
//定义指针p.通过值传递:p=&a[0]。等价于 void fun(int a[])
//void fun(
int a[]){
//数组弱化为指针。
int i;
for(i=0;i<5;i++