日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C++指针与引用的区别

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++指针与引用的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)指針是一個變量,本身占有內存,內存中存儲的是所指向對象的地址。引用是內存的別名。
(2)指針可以通過解引用的方式,取出所指向內存中的值。引用沒有解引用。
(3)指針可以先定義,然后在后面初始化。引用在定義的時候必須初始化。
(4)++運算符對于指針、引用的作用不同。

引用的實質

指針實際上是一個指針常量,因此其只能指向同一個對象。

#include <iostream>
using namespace std;
int main()
{int a = 100;// 相當于int* const b = aint& b = a;// 相當于const int* const c = aconst int& c = a;cout<<b<<endl<<c<<endl;
}

指針是個變量,里面存放的是所指向的內存的地址。而引用是一個變量的別名,只是給一個內存取了一個別名而已。

#include <iostream>
using namespace std;int main(int argc,char** argv)
{int a = 10;int* ptr = &a;int& b = a;cout<<"a的地址為"<<&a<<endl;cout<<"指針存放的數據為"<<ptr<<endl;cout<<"指針變量的地址為"<<&ptr<<endl;cout<<"引用的地址為"<<&b<<endl;
}

(1)可見指針是一個變量,本次就占一個地址。
(2)指針的內存中所存放的數據是一個地址。可以通過解引用的方式取出該地址的值。
(3)引用只是同一片內存的別名。

如果想取出指向的地址中的值的話,指針需要解引用,而引用不需要

#include <iostream>
using namespace std;int main(int argc,char** argv)
{int a = 10;int* ptr = &a;int& b = a;cout<<"取出指針所指向內存中的值"<<*ptr<<endl;cout<<"取出引用對象的值"<<b<<endl;
}

引用在定義的時候必須初始化,而指針可以先定義,然后再初始化

#include <iostream>
using namespace std;int main(int argc,char** argv)
{int a = 10;// 可以,指針可以先定義然后再初始化int* ptr;ptr = &a;// 不可以,指針在定義的時候必須初始化// int& b;int& b = a;// 不可以,引用必須賦一個左值// int& c = 10;
}

引用不能為空,指針可以為空

和上面那個一樣,就是說引用在定義的時候必須初始化,而指針可以不初始化。

運算符++的含義不同

對應指針,++運算符是將該指針所指向的內存,移動所指向對象占用的內存個數。比如:指針ptr所指向的的內存為0x7ffeafae8924,所指向對象的數據類型為int,占4位,++后,指向的地址變為0x7ffeafae8928。

#include <iostream>
using namespace std;int main(int argc,char** argv)
{int a = 2;int* ptr = &a;int& b = a;cout<<"指針本來指向的地址"<<ptr<<endl;ptr++;cout<<"++后指針指向的地址"<<ptr<<endl;
}

對于引用,是將變量值+1。

#include <iostream>
using namespace std;int main(int argc,char** argv)
{int a = 2;int* ptr = &a;int& b = a;cout<<"引用變量的值為"<<b<<endl;b++;cout<<"引用變量的值變為"<<b<<endl;
}

總結

以上是生活随笔為你收集整理的C++指针与引用的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。