指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址。如果将变量的地址保存在内存的特定区域,用变量来存放这些地址,这样的变量就是指针变量。变量1的地址就是指针,存放指针的变量2就是指针变量。(注意:变量1和变量2并不是一个变量)
概念理解:乍一看概念,什么东西,又是变量又是指针的。举一个简单例子就可以很快的理解指针和指针变量的概念啦。有一天你和你的媳妇逛街,街上人比较多走着走着你们两个走散了,这个时候我正好看见你媳妇在一个奶茶店里。你问我你媳妇在哪,我说在奶茶店里,然后你去奶茶店找到了她。咱们把这个事件理解成你正在写的程序,你媳妇和我比做程序里边的两个变量,你的最终目的是找到你媳妇,在程序里边的最终目的是得到你媳妇这个变量的值,奶茶店也就是我们所说的指针,这样就可以理解变量的地址就是指针。我就是指针变量,因为我知道你媳妇在奶茶店,我存放着奶茶店这个地址也就是存放着指针,这样也可以理解了存放指针的变量就是指针变量。
编写的程序如下
char a,*pa; //(a代表你媳妇 pa代表我,也就是指针变量)
a = 10;
pa = &a; //(此句话的意思是将a所在的地址赋给pa,&地址符,也就是我知道你媳妇在奶茶店)
printf("%d", *pa); //(最后输出a的值,我告诉你你媳妇在奶茶店你找到了她)