第八百次重修指针之脑明白指针常量,常量指针

      一、指针         

         指针(Pointer)是编程语言中的一个对象。利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元;

举例说明:

    int a = 10;
    int * p = &a;

    cout << "a = " << a << endl;
    cout << "指针p指向的地址存入了"<<*p<<endl;
    cout << "指针p指向的地址为" << p << endl;

创建指针变量p指向int型变量a的地址,即指针变量p内存入的是a对应的内存地址,可以根据p内存入的内存地址访问a;

运行结果如下:

二、常量指针

        指针前加了const修饰,表示为常量指针,指针的指向可以修改,但是指向的值不可以通过该指针修改;例如:

    int a = 10;
    int b = 10;
    const int * p = &a;    //常量指针;指针指向可以修改,但指向的值不可以改;

    p = &b;   //合法,指针重新指向b;
    *p = 20;  //非法,通过指针p无法直接修改变量a对应内存中的值;

三、指针常量

        在变量前加了const修饰,表示为指针常量,指向不可以修改,但是指针指向值可以修改;

    int a = 10;
    int b = 10;
    int * const p = &a;    //常量指针;指针指向可以修改,但指向的值不可以改;

    p = &b;   //非法,指针不可重新指向b;
    *p = 20;  //合法,通过指针p直接修改变量a对应内存中的值;


    四、总结

        const意为常量,当const放在指针,即int * 前时,表明为指针常量,即指针变量的值无法修改,但是指向可以修改;当放在指针变量p前时,表明p指向的地址为常量,也就是指向不可以修改,但是可以修改该地址的值;

        或许可以这么记,const放在*p前,而*表示取内容,表明指向的内容无法修改;而p前表明指针无法修改,也就是指针指向的位置无法修改;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值