美文网首页
C++指针常量与常量指针

C++指针常量与常量指针

作者: 米斯特芳 | 来源:发表于2021-11-27 19:29 被阅读0次

指针常量:指针本身是常量,指针的值不能改变
常量指针:指针指向的值是“常量”(打引号表示的是不能通过指针改变指向的值,这个层面的常量,不一定要真的指向常量)
上代码和注释:

#include<iostream>
using namespace std;
int main(){
    const int a=1;// const int
    int b=2,c=3;

    //理解:可以从右往左读,p is a,*表示"pointer to"

    // 1,测试常量指针
    const int *p1;// p is a pointer to int const,常量指针:指向常量的指针
    p1=&b;// 不一定要指向常量
    cout<<*p1<<endl;
    *p1=1;//不能通过指针改变指向的值,但该值(非常量时)可以通过其他方式改变,如b=1
    cout<<*p1<<endl;

    // 2,测试指针常量
    // p is const pointer to int,指针常量:指针本身是常量
    int *const p3=&b; // 既然指针本身是常量,必须赋予初值
    cout<<*p3<<endl;
    p3=&c;// 指针为常量,也就不能再赋值,即指向不能变(但是指向的对象是可变的)
    cout<<*p3<<endl;
    
    // 3,既是指针常量,又是常量指针
    // 根据以上可知,该指针指向不能变,也不能通过该指针取修改指向的值(其他方式允许)
    const int *const p4=&b;// p is const pointer to int const
    b=6;// 可以通过其他方向改变指向的值
    cout<<*p4<<endl;

    // 4,其他写法:int和const可以交换
    // int const *p2;// p is a pointer to const int,so p2=p1
    // int const *const p5;// p is const pointer to const int,so p5=p4 
    
    return 0;
}

相关文章

  • C++ 指针常量、常量指针和常指针常量

    参考:C++ 指针常量、常量指针和常指针常量

  • 2019-05-22 常量与指针,数组与指针

    常量与指针,数组与指针 常量与指针 常量与指针的关系很容易弄混,为此我专门在此记录一下。 常量指针 指向常量的指针...

  • C++指针常量与常量指针

    指针常量:指针本身是常量,指针的值不能改变常量指针:指针指向的值是“常量”(打引号表示的是不能通过指针改变指向的值...

  • const 相关

    1.常量指针与指针常量 常量指针是针对于普通指针而言,语义在于指向常量的指针;定义: const *...

  • C++中的const和指针

    C++中的const可以与指针一起使用,通常可以归纳为3种:指向常量的指针,常指针,指向常量的常指针。 (1)指向...

  • 指针常量与常量指针

    指针常量 指针不可变 指针指向的值可 const右边部分不可变.常量指针 ...

  • 指针常量与常量指针

    这里有一篇关于利用顺时针解读的文字,按照这个方法理解了以后,再去区分指针常量与常量指针的定义应该不难。 http:...

  • C++指针常量和常量指针

    《Effective C++》条款三中写道: 如果关键字const出现在星号左侧,表示被指物是常量;如果出现在星号...

  • 指针,引用和常量

    常量指针和指针常量 常量指针是指向常量的指针,如:const int* p其中p是一个指针,指向了一个常量,也就是...

  • 5.const与指针

    1.const修饰指针-常量指针 2.const修饰常量-指针常量 3.const修饰指针和常量 代码如下

网友评论

      本文标题:C++指针常量与常量指针

      本文链接:https://www.haomeiwen.com/subject/kajqxrtx.html