cpp-const修饰指针

05 const修饰指针

  1. const 修饰指针 -> 常量指针
    常量指针的特点:指针的指向可以修改,但是指针指向的数据值不可以修改。

    #include 
    using namespace std;
    int main()
    {
    int a = 10;
    int b = 100;
    const int* p = &a;  //常量指针
    cout << *p << endl;
    //*p = 100;  常量指针指向的数据值不可以修改
    p = &b;
    cout << *p << endl;
    system("pause");
    return 0;
    }

    运行结果:(环境:Windows11 (arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

    10
    100
    请按任意键继续. . .

    *p = 100 是错误的,因为const 修饰的指针是不可以修改数据值的。但是p = &b 是可以的,因为指针的指向是可以修改的。

  2. const 修饰常量 -> 指针常量
    指针常量的特点:指针的指向不可以修改,但是指针指向的数据值可以修改。

    #include 
    using namespace std;
    int main()
    {
    int a = 10;
    int b = 100;
    int * const p = &a;  //指针常量
    cout << *p << endl;
    *p = 200;
    cout << *p << endl;
    //p = &b;  指针常量:指针的指向不可以修改
    system("pause");
    return 0;
    }

    运行结果:(环境:Windows11 (arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

    10
    200
    请按任意键继续. . .

    *p = 200 是正确的,因为const 修饰的常量可以修改数据值。但是p = &b 则错误的,因为指针的指向在指针常量不可以被修改。

  3. const 修饰指针也修饰常量

    #include 
    using namespace std;
    int main()
    {
    int a = 10;
    int b = 100;
    const int * const p = &a;  //修饰指针也修饰常量
    cout << *p << endl;
    //*p = 200;
    //p = &b;
    system("pause");
    return 0;
    }

    运行结果:(环境:Windows11 (arm/Apple M VM)/Visual Studio 2022/Debug/arm64)

    10
    请按任意键继续. . .

    在这里,const不仅修饰了指针,也修饰了常量。所以指针的指向和地址的内容都不可以修改。

如何记忆:

  1. * 记忆成指针,把const 记忆为常量。const int * p 常量指针(可以修改指针/数据不可以被修改)。int * const p 指针常量(可以修改数据/指针不可以被修改)。

  2. const 后面跟着什么,则什么就不可以修改。(比如const int * pconst后跟着*,则解引用的修改不可以用了。int * const pconst后跟着p,则p不好修改了,也就是不好改地址了)

文章「cpp-const修饰指针」,由本站用户「Admin」发布。文章仅代表Admin观点,不代表本站立场。
页面网页地址「https://xiaozhiyuqwq.top/p/749」。
如您对文章及其附件提出版权主张,或进行引用转载等,请查看我们的【版权声明】
无评论:-)

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇