C/C++ 指針和引用的區(qū)別

  • 指針和引用的區(qū)別
    性質(zhì)方面
    1.指針是一個(gè)實(shí)體,需要分配內(nèi)存空間;引用只是變量的別名,不需要分配空間。
 void main(){
    int a = 1; 
    int *p = &a;
    int &b = a;
    cout << p << endl;
    cout << *p << endl;
    cout << &b << endl;
    cout << b << endl;
}
//結(jié)果是:地址/1/地址/1

2.引用在定義的時(shí)候必須要初始化,并且不能改變。指針在定義的時(shí)候不一定要初始化,并且指向空間可變。(引用的值不能為NULL)
3.有多級指針,但是沒有多級引用。只能有一級引用。
4.指針和引用的自增運(yùn)算結(jié)果不一樣。(指針是指向下一個(gè)空間,引用是引用的變量值加1)

void main(){
    int a[2] = {123,256};
    int *p = a;
    int &b = a[0];
    b++;
    cout << a[0]<< endl;
    cout << a[1]<< endl;
    cout << *p << endl;
    cout << b << endl;
    //124,256,124,124
    p++;
    cout << a[0] << endl;
    cout << a[1] << endl;
    cout << *p << endl;
    cout << b << endl;
    //124,256,256,124
}
  1. “sizeof引用”得到的是所指向的變量(對象)的大小,而“sizeof指針”得到的是指針本身的大小
int a; //sizeof(a),就是求變量a所占內(nèi)存,值為4;
int &b=a; // sizeof(b)==sizeof(a)
int *p = &a;// sizeof(p),指針p所占的內(nèi)存,指針變量在32/64位系統(tǒng)下都是4個(gè)字節(jié)
            //sizeof(*p) 指針p指向變量所占的內(nèi)存,也就是sizeof(a)

6.如果返回動態(tài)內(nèi)存分配的對象或內(nèi)存,必須使用指針,引用可能引起內(nèi)存泄露。


?指針和引用作為函數(shù)參數(shù)進(jìn)行傳遞時(shí)的區(qū)別

  1. 函數(shù)參數(shù)中的引用傳遞可以改變參數(shù)的值,值傳遞不會改變值
void main(){
double x= 3.0;
cout<<cube(x);
cout<<"= cube of " << x<<endl;
cout<<refcube(x);
cout<<"= cube of "<< x << endl;
}
double cube(double a){
       a*=a*a;
       return a;
}
double recube(double &ra){
      ra*=ra*ra;
      return ra;
}
// 27 = cube of 3
// 27 = cube of 27
refcube()函數(shù)修改了main中的x值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,251評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,666評論 1 32
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,680評論 1 51
  • 我的藝術(shù)與文學(xué)寄生于憂郁 沒有后者,前者便不可生存 沒有前者,后者亦可生存 也許,這是最好的結(jié)局。 我只能祝福他,...
    濃淡香壹閱讀 115評論 0 0
  • 期末前一大堆資料不知道從何開始背?今天背的知識點(diǎn)明天又忘?同一道題反復(fù)做反復(fù)錯(cuò),始終在同一個(gè)地方摔倒?沒關(guān)系,我整...
    在上正是南北閱讀 902評論 0 5

友情鏈接更多精彩內(nèi)容