亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中指針和引用的區別詳解

2020-01-26 14:14:23
字體:
來源:轉載
供稿:網友

C++中指針和引用的區別

指針和引用在C++中很常用,但是對于它們之間的區別很多初學者都不是太熟悉,下面來談談他們2者之間的區別和用法。

1.指針和引用的定義和性質區別:

(1)指針:指針是一個變量,只不過這個變量存儲的是一個地址,指向內存的一個存儲單元;而引用跟原來的變量實質上是同一個東西,只不過是原變量的一個別名而已。如:

int a=1;int *p=&a;int a=1;int &b=a;

上面定義了一個整形變量和一個指針變量p,該指針變量指向a的存儲單元,即p的值是a存儲單元的地址。

而下面2句定義了一個整形變量a和這個整形a的引用b,事實上a和b是同一個東西,在內存占有同一個存儲單元。

(2)可以有const指針,但是沒有const引用;

(3)指針可以有多級,但是引用只能是一級(int **p;合法 而 int &&a是不合法的)

(4)指針的值可以為空,但是引用的值不能為NULL,并且引用在定義的時候必須初始化;

(5)指針的值在初始化后可以改變,即指向其它的存儲單元,而引用在進行初始化后就不會再改變了。

(6)"sizeof引用"得到的是所指向的變量(對象)的大小,而"sizeof指針"得到的是指針本身的大??;

(7)指針和引用的自增(++)運算意義不一樣;

2.指針和引用作為函數參數進行傳遞時的區別。

(1)指針作為參數進行傳遞:

#include<iostream>using namespace std;void swap(int *a,int *b){  int temp=*a;  *a=*b;  *b=temp;}int main(void){  int a=1,b=2;  swap(&a,&b);  cout<<a<<" "<<b<<endl;  system("pause");  return 0;}

結果為2 1;

用指針傳遞參數,可以實現對實參進行改變的目的,是因為傳遞過來的是實參的地址,因此使用*a實際上是取存儲實參的內存單元里的數據,即是對實參進行改變,因此可以達到目的。

再看一個程序;

#include<iostream>using namespace std;void test(int *p){  int a=1;  p=&a;  cout<<p<<" "<<*p<<endl;}int main(void){ int *p=NULL; test(p); if(p==NULL) cout<<"指針p為NULL"<<endl; system("pause"); return 0;}

運行結果為:

0x22ff44 1

指針p為NULL

大家可能會感到奇怪,怎么回事,不是傳遞的是地址么,怎么p回事NULL?事實上,在main函數中聲明了一個指針p,并賦值為NULL,當調用test函數時,事實上傳遞的也是地址,只不過傳遞的是指地址。也就是說將指針作為參數進行傳遞時,事實上也是值傳遞,只不過傳遞的是地址。當把指針作為參數進行傳遞時,也是將實參的一個拷貝傳遞給形參,即上面程序main函數中的p何test函數中使用的p不是同一個變量,存儲2個變量p的單元也不相同(只是2個p指向同一個存儲單元),那么在test函數中對p進行修改,并不會影響到main函數中的p的值。

如果要想達到也同時修改的目的的話,就得使用引用了。

2.將引用作為函數的參數進行傳遞。

在講引用作為函數參數進行傳遞時,實質上傳遞的是實參本身,即傳遞進來的不是實參的一個拷貝,因此對形參的修改其實是對實參的修改,所以在用引用進行參數傳遞時,不僅節約時間,而且可以節約空間。

看下面這個程序:

#include<iostream>using namespace std;void test(int &a){  cout<<&a<<" "<<a<<endl;}int main(void){ int a=1; cout<<&a<<" "<<a<<endl; test(a); system("pause"); return 0;}

輸出結果為: 0x22ff44 1

          0x22ff44 1

再看下這個程序:

這足以說明用引用進行參數傳遞時,事實上傳遞的是實參本身,而不是拷貝。

所以在上述要達到同時修改指針的目的的話,就得使用引用了。

#include<iostream>using namespace std;void test(int *&p){  int a=1;  p=&a;  cout<<p<<" "<<*p<<endl;}int main(void){ int *p=NULL; test(p); if(p!=NULL) cout<<"指針p不為NULL"<<endl; system("pause"); return 0;}

輸出結果為:0x22ff44 1

         指針p不為NULL

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频在线播放完整版免费观看| 亚洲性视频网站| 日本老师69xxx| 亚洲va欧美va国产综合剧情| 精品久久久999| 91精品久久久久久久久久| 国产精品1区2区在线观看| 日韩一区二区三区在线播放| 91香蕉嫩草影院入口| 98精品在线视频| 国产精品欧美亚洲777777| 国产精品一区二区三区毛片淫片| 国产在线观看精品| 一区二区中文字幕| 成人激情av在线| 精品人伦一区二区三区蜜桃网站| 91视频88av| 91在线视频一区| wwwwwwww亚洲| 亚洲电影中文字幕| 色婷婷**av毛片一区| 国产自摸综合网| 欧美黄色片免费观看| 亚洲人成网站色ww在线| 亚洲欧美日韩国产精品| 国产午夜精品免费一区二区三区| 97视频免费看| 欧美性xxxxx极品娇小| 欧美激情啊啊啊| 久久天天躁狠狠躁夜夜爽蜜月| 上原亚衣av一区二区三区| 精品久久久久久中文字幕| 欧美日韩精品在线观看| 久久精品国产亚洲精品| 欧美乱妇40p| 欧美日韩一区二区免费在线观看| 国产精品久久久久久久久久东京| 中文字幕日韩欧美在线视频| 国产成人综合亚洲| 成人信息集中地欧美| 久久精品电影网站| 秋霞午夜一区二区| 中文字幕亚洲欧美| 久久亚洲精品网站| 国产精品一区二区三区成人| 久久精品亚洲国产| 亚洲欧美制服丝袜| 日韩av在线最新| 欧美夫妻性生活视频| 欧美日本在线视频中文字字幕| 久久久久久尹人网香蕉| 国产精品亚洲美女av网站| 国产精品视频一区国模私拍| 国产精品美女www爽爽爽视频| 97国产精品人人爽人人做| 成人字幕网zmw| 国产精品6699| 日韩欧美999| 成人av色在线观看| 亚洲www在线| 国产精品成人av性教育| 91热福利电影| 欧美日韩成人免费| 色噜噜国产精品视频一区二区| 亚洲精品日产aⅴ| 亚洲老板91色精品久久| 97国产精品视频人人做人人爱| 欧美精品在线免费| 亚洲a在线播放| 欧美性猛交xxxx乱大交3| 国产欧美日韩亚洲精品| 欧美成人精品一区| 成人黄色大片在线免费观看| 欧美日韩高清在线观看| 成人中文字幕在线观看| 国产精品嫩草影院一区二区| 伊人激情综合网| 亚洲成人免费网站| 亚洲精品乱码久久久久久按摩观| 91亚洲精品在线| 欧美另类在线观看| 国产精品爽黄69| 久久久成人精品| 精品久久久国产| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲最新视频在线| 97超级碰碰碰| 久久男人av资源网站| 伊人久久大香线蕉av一区二区| 中文字幕综合一区| 曰本色欧美视频在线| 国产亚洲精品综合一区91| 亚洲福利视频免费观看| 国产一区二区在线免费视频| 亚洲电影免费观看高清完整版在线观看| 麻豆国产精品va在线观看不卡| 青青草一区二区| 国产精品美女www| 国产日产欧美a一级在线| 日韩亚洲成人av在线| 久久久久久久久亚洲| 国产亚洲视频在线观看| 91精品国产高清久久久久久| 国产精品第10页| 青青草国产精品一区二区| 丝袜亚洲欧美日韩综合| 欧洲亚洲免费视频| 国产精品久久二区| 中文字幕久久精品| 欧美极品美女视频网站在线观看免费| 精品国产一区二区在线| 热re99久久精品国产66热| 国产手机视频精品| 中文综合在线观看| 在线观看久久久久久| 国产亚洲精品久久久久久777| 欧美日韩一区二区在线播放| 欧美高跟鞋交xxxxxhd| 97视频免费在线看| 日韩欧美在线视频日韩欧美在线视频| 欧美日韩国产精品一区二区不卡中文| 最近2019中文免费高清视频观看www99| 色偷偷88888欧美精品久久久| 日韩黄色av网站| 国产精品自在线| 日韩视频免费观看| 狠狠色噜噜狠狠狠狠97| 日本精品视频在线| 国产成人精品免高潮在线观看| 亚洲aaaaaa| 日韩综合视频在线观看| 91久久精品久久国产性色也91| 国产第一区电影| 亚洲第一免费播放区| 欧美成人精品不卡视频在线观看| 精品人伦一区二区三区蜜桃网站| 日本国产高清不卡| 91视频免费网站| 成人黄色在线播放| 国内外成人免费激情在线视频| 国产精品18久久久久久首页狼| 少妇高潮久久久久久潘金莲| 少妇高潮久久久久久潘金莲| 国产美女被下药99| 欧美激情精品久久久久久大尺度| 日韩电影中文字幕在线观看| 国产精品视频公开费视频| 亚洲999一在线观看www| 成人深夜直播免费观看| 欧美电影免费播放| 国产精品入口免费视| 亚洲天堂2020| 久久成年人视频| 日韩视频欧美视频| 欧美疯狂性受xxxxx另类| 亚洲人午夜精品免费| 久久男人av资源网站| 国产精品91一区| 欧美性xxxx18| 色婷婷久久一区二区| 美女久久久久久久久久久| 欧美精品免费在线观看| 欧洲成人性视频| 91色视频在线导航|