有关指针问题是c语言中令人头疼的一部分,我们知道计算机会将每一个变量保存到不同的地址中,如何实现变量值的交换呢?引入了指针,使两个变量之间建立关系。下面我将用我的理解来解释指针。首先要弄清楚如下知识点:
《1》指针=地址
《2》&a:获取a的地址,&为取地址符
《3》int *p:定义一个整型地址变量。
《4》指针类型相同才可以赋值,如int *p=&a:整型地址变量存放整型地址
《5》*p:直接访问p所指向的内容,此时的*表示接引用或间接访问符
接下来通过几个实例具体展示指针的用法:
int a=10;
int b=20;
int *p=&a; 指针p保存了a的地址,同时p与a之间建立了联系,得到p=1000
*p=100; 将100赋给p所保存的地址的内容,即a=100
p=&b; 指针p保存了b的地址,得到p=2000
*p=200; 将200赋给p所指向的内容,即b=200
int **pp=&p; int **pp的意思是pp是一个指向指针的指针变量,pp=3000
*pp=&a; 3000为p的地址,对pp解引用是p,所以将a的地址赋给p,即p=&a,得到p=1000
**pp=1000; 即p对a解引用,a=1000
*pp=&b; 同上面一样分析,p=&b,得到p=2000
**pp=2000; b=2000
小提示:在使用函数调用时,父函数调用子函数,子函数想改变父函数变量的值,则父函数需要传指针并在子函数中解引用
举例说明:int a=10;int b=20,通过函数调用输出a=20,b=10
#include <stdio.h>
void Swap(int *p1,int *p2)
{
int tmp;
tmp=*p1;
*p1=*p2;
*p2=tmp;
}
int main()
{
int a=10,b=20;
Swap(&a,&b);//传a,b的地址
printf("a=%d b=%d",a,b);
}
通过小编的介绍,您对指针的使用学会了吗?