指针的简单了解
你们初学指针头就大了,是不是?不要慌,接下来跟我了解下!**
指针P是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。
说到变量,变量又是什么呢?
变量可以储存计算机的计算结果,变量是通过变量名访问的,变量是可变的。
指针实际上也是变量,它里面存储的实际是内存中的一个地址。举例来说:你如果要去找一个人,那你得知道他在哪?那就得知道他所在的地址,以说指针就是就相当于这个人的地址了。
举个例子:
#include<stdio.h>
int main(){
int a=3;
int b=2;
int* c;
c=&b;
int** d;//二重指针只能指向一重指针,以此类推
d=&c;
printf("a的地址=%d\n",&a);//取变量a的地址
printf("b的地址=%d\n",&b);//取变量b的地址
printf("c的地址=%d\n",&c);//取变量c的地址——指针也是一种变量
printf("d的地址=%d\n",&d);//取变量d的地址——同理
printf("c的值=%d\n",c);//b的地址
printf("*c的值=%d\n",*c);//指针c所指向变量b中的内容——输出结果2
printf("d的值=%d\n",d);//变量c的地址
printf("*d的值=%d\n",*d);//同理,b的地址
printf("**d的值=%d\n",**d);//同理,结果为2
printf("%d\n",*&a);//变量的地址也可以是一种指针,3
printf("%d\n",&**d);//*d代表的是b的地址,**d代表的是b中所存放的值,&**d代表的是b的地址
printf("%d\n",*&**&d);//同理,b的地址
printf("%d\n",*&d);//c的地址
}
【注:1.&代表的是地址
2.*是指针变量,*c表示b中的值
3.**d双重指针,*d是b的地址,**d表示b中的值】
编程小白还请多多指教!
来源:CSDN
作者:qzw2609641245
链接:https://blog.csdn.net/qzw2609641245/article/details/104186323