1

理解变量名和指针

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

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

#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
4.6k 声望588 粉丝

小学一年级时候就学到了这样一句话“活到老学到老”,但是目前还没老的我们都还在学习吗?