指针的简单了解

北慕城南 提交于 2020-02-06 01:01:49

指针的简单了解

你们初学指针头就大了,是不是?不要慌,接下来跟我了解下!**
指针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中的值】

编程小白还请多多指教!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!