区分指针、变量名、指针所指向的内存

2020年9月19日 86点热度 0条评论 来源: xumenger

理解变量名和指针

这篇文章想讲的东西很简单,文章的内容也很少,但是却也是当年着实困惑我许久的一个极其小的知识点。

直接以一个例程,以及程序中的注释进行说明

#include<stdio.h>
int main(void)
{
    int x=1;
    int *px1, *px2;
    px1 = &x;
    px2 = &x;
    //上面这两行代码是的指针px1、px2指向同一块内存,也就是都指向int型整数x,
    //也就是*px1、*px2、变量名x都是代表同一块内存的数据
    int y = x;
    //这行代码为y分配了一块内存,并将x的值复制到y的所在内存中,
    //而不是x和y共享一块内存
    return 0;
}

指针本身是一个值,但是这个值的含义是一个地址(当然也需要内存去存储这个地址值,所以有指向指针的指针,以及指向指向指针的指针,……),这个地址指向的是一个内存,这块内存中存储着数据,当然如果指针为NULL,就表示指针不指向任何一块内存。

结合《内存的分配与释放以及内存泄漏》深入理解指针和内存。

    原文作者:xumenger
    原文地址: https://segmentfault.com/a/1190000003697080
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。