亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-04 11:23:44 來源:網絡 閱讀:484 作者:銀河星君 欄目:編程語言

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

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

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

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

#include<iostream>
#include<string.h>
using namespace std;
void swap(char *&a, char *&b) /*使用引用指針做參數*/
{
    char *temp;
    temp=a; /*進行數值的交換*/
    a=b;
    b=temp;
}
void swap2(int *a,int *b)//傳地址
{
    int temp=*a;
    *a=*b;
    *b=temp;
}
void swap3(int &c,int &d)//引用
{
    int temp;
    temp=c;
    c=d;
    d=temp;
}
int main()
{
    char *stra="one world"; /*字符串指針*/
    char *strb="one dream";
    int a=1,b=2;
    int c=3,d=4;
    cout<<"地址傳遞:"<<endl;
    cout<<"swap前:a="<<a<<" "<<"b="<<b<<endl;
    swap2(&a,&b);
    cout<<"swap后:a="<<a<<" "<<"b="<<b<<endl;
    cout<<"引用傳遞:"<<endl;
    cout<<"swap前:c="<<c<<" "<<"d="<<d<<endl;
    swap3(c,d);
    cout<<"swap后:c="<<c<<" "<<"d="<<d<<endl;
    cout<<"引用傳遞:"<<endl;
    cout <<"swap前stra: "<<stra<<endl; /*輸出字符串*/
    cout<<"swap前strb: "<<strb<<endl;
    swap(stra,strb); /*傳入地址*/
    cout<<"swap后"<< endl;
    cout<<"stra: "<<stra<<endl; /*輸出字符串*/
    cout<<"strb: "<<strb<<endl;

    return 0;
}

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


1.用指針傳遞參數,可以實現對實參進行改變的目的,是因為傳遞過來的是實參的地址.

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c
AI

同仁县| 潍坊市| 民县| 石城县| 新田县| 从江县| 宜丰县| 武川县| 胶南市| 乐亭县| 万山特区| 卢湾区| 富源县| 沙田区| 朝阳区| 抚远县| 萝北县| 新巴尔虎左旗| 镇安县| 镇沅| 平利县| 东兴市| 许昌市| 文水县| 平顺县| 美姑县| 文登市| 鸡东县| 黎平县| 隆尧县| 天柱县| 桐城市| 兴安县| 关岭| 建瓯市| 蒲江县| 土默特左旗| 华宁县| 满城县| 阿拉善左旗| 上蔡县|