cpp引用和指针的关系

07 引用和指针的关系

引用很容易与指针混淆,它们之间有三个主要的不同:

  • 不存在空引用。引用必须连接到一块合法的内存。但是指针可以被指向一个非法的内存空间(野指针)。

    引用:

    int a = 10;
    int& b = a;

    指针:

    int a = 10;
    int* p = &a;
    p = (int*)0x114514;

    在这里,p最开始指向的是变量a的内存空间。之后我们强制将这个p指向0x114514这个内存空间,就出现了野指针,此时操作野指针指向的内存空间是非法操作。

  • 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。

    引用:

    int a = 10;
    int& b = a;

    指针:

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

    在这里,指针p最开始指向的是变量a的内存空间。后续被修改指向了变量b的内存空间。

  • 引用必须在创建时被初始化。指针可以在任何时间被初始化。

    引用:

    int a = 10;
    int& b = a;

    指针:

    int* p;
    int a = 20;
    p = &a;

    在这里是先创建了一个int类型的指针p,但是指针这时候没有指向的内存空间。之后我们创建了一个变量a,再将变量a的地址赋值给指针p

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

发送评论 编辑评论


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