const int* p

 *之前是指针指向的目标,*之后是指针本身的属性(即地址是否可变)

const int* ptr1;        // (1.) pointer to const int
int const * ptr2;       // (2.) same as 1.
int* const ptr3;        // (3.) const pointer to int
const int* const ptr4;  // (4.) const pointer to const int
int const * const ptr4; // (5.) same as 4.

本文以const int* p为例。

int* p 只能指向变量,可读可写。

const int* p 只读指针,可以指向变量、常量等,只读。

复制代码
    int x{ 10 }, y{11};
    const int cx{ 20 }, cy{ 21 };
    int* p;//只能指向变量,可读可改。
    const int* cp;//只读指针。可以指向常量、变量,但是只读,不可更改。

    p = &x;//指针p指向地址x
    p = &y;//指向地址y
    //p = &cx;//错误,
    *p = 30;//改变地址y中的值
    cp = &x;
    cp = &y; 
    cp = &cx;
    cp = &cy;
    //*cp = 30;//错误
复制代码
posted @   夕西行  阅读(656)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示