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

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

C++交換指針實例

2020-01-26 15:16:48
字體:
來源:轉載
供稿:網友

本文實例講述了C++交換指針的方法。分享給大家供大家參考。具體分析如下:

通常情況下,我們只是對普通數據進行交換,交換指針的問題很少涉及,這里總結下,也方便我們以后查閱。

首先看下整型兩個數據的交換(這個比較簡單,就不多介紹了),核心代碼如下:

void m_swap(int *a,int *b){     int tmp = *a;     *a = *b;     *b = tmp;}

指針是內存地址,應該也算是整型變量,交換兩個指針和交換兩個整型變量類似,下面以兩種方式進行。

傳統C方式:

可以通過傳遞指向指針的指針來進行交換,核心代碼如下:

void m_swap(int **a,int **b){     int *tmp = *a;     *a = *b;     *b = tmp;}

demo示例如下:

#include <iostream>using namespace std;void m_swap(int **a,int **b){    int *tmp = *a;    *a = *b;    *b = tmp;}int main(){    int a=10,b=20;    int *pa = &a,*pb = &b;    cout<<"a = "<<a<<" , b = "<<b<<endl;    cout<<"*pa = "<<*pa<<" , *pb = "<<*pb<<endl;    cout<<"pa = "<<pa<<" , pb = "<<pb<<endl<<endl;    m_swap(&pa,&pb);    cout<<"a = "<<a<<" , b = "<<b<<endl;    cout<<"*pa = "<<*pa<<" , *pb = "<<*pb<<endl;    cout<<"pa = "<<pa<<" , pb = "<<pb<<endl;}

輸出結果如下圖所示:

從結果看到,a和b的值沒有變,變的是pa和pb這兩個指針的值。

C++引用方式:

也可以通過傳遞指向指針的引用來實現指針的交換。

需用*定義指針,用&定義引用,如果要交換兩個指針,形參類型如下(以int為例):

int *&ptr

這個從右至左理解,首先ptr是個引用,需要用&符號,其次ptr與指向int型對象的指針相關聯,需要用*符號。

則交換指針的核心代碼如下:

void ptrSwp(int *&pi,int *&pj){     int *pk = pi;     pi = pj;     pj = pk;}

demo如下:

#include <iostream>using namespace std;void ptrSwp(int *&pi,int *&pj){    int *pk = pi;    pi = pj;    pj = pk;}int main(){    int i=42,j=24;    int *pi=&i,*pj=&j;    cout<<"i : "<<i<<"/tj : "<<j<<endl;    cout<<"*pi : "<<*pi<<"/t*pj : "<<*pj<<endl;    cout<<"pi : "<<pi<<"/tpj : "<<pj<<endl<<endl;    ptrSwp(pi,pj);    cout<<"i : "<<i<<"/tj : "<<j<<endl;    cout<<"*pi : "<<*pi<<"/t*pj : "<<*pj<<endl;    cout<<"pi : "<<pi<<"/tpj : "<<pj<<endl;}

完整demo示例如下:

#include <iostream> using namespace std; //using pointervoid ptrSwap1(int **pa,int **pb){  int *ptmp = *pa;  *pa = *pb;  *pb = ptmp;} //using referencevoid ptrSwap2(int *&pa,int *&pb){  int *pk = pa;  pa = pb;  pb = pk;} int main(){  for(int i=1; i<=3; ++i)  {    int a=56,b=78;    int *pa=&a,*pb=&b;    cout<<"a : "<<a<<"/tb : "<<b<<endl;    cout<<"*pa : "<<*pa<<"/t*pb : "<<*pb<<endl;    cout<<"pa : "<<pa<<"/tpb : "<<pb<<endl;    switch(i)    {    case 1:      //using pointer      ptrSwap1(&pa,&pb);      break;    case 2:      //using reference      ptrSwap2(pa,pb);      break;    default:      //using std::swap      swap(pa,pb);      break;    }    cout<<"a : "<<a<<"/tb : "<<b<<endl;    cout<<"*pa : "<<*pa<<"/t*pb : "<<*pb<<endl;    cout<<"pa : "<<pa<<"/tpb : "<<pb<<endl<<endl;  }}

補充:

C++標準庫中已經實現了std::swap的功能,使用模版實現的,我們沒必要重復造輪子,直接用就是了,不懂的朋友參考這里:http://www.cplusplus.com/reference/algorithm/swap/

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级片久久久久久久| zzijzzij亚洲日本成熟少妇| 欧美视频在线观看 亚洲欧| 欧美黄色片免费观看| 国产精品最新在线观看| www国产精品视频| 亚洲a在线观看| 日本亚洲欧洲色| 国产精品一区二区三区成人| 国内成人精品视频| 国产亚洲精品一区二555| 久久久久久亚洲精品不卡| 欧美性xxxx极品高清hd直播| 97在线视频一区| 欧美在线视频免费观看| 国产精品一区二区久久久| 成人av在线亚洲| 欧美日韩中文字幕| 久久影视电视剧免费网站| 国产精品久久久久久久久借妻| 国产精品自产拍高潮在线观看| 国产精品视频久久久| 色www亚洲国产张柏芝| 亚洲欧美999| 欧美黑人一区二区三区| 97色在线观看| 成人精品在线视频| 日日骚久久av| 亚洲女人天堂成人av在线| 国内精品在线一区| 精品日韩中文字幕| 国产精品国产三级国产aⅴ9色| 欧美成人午夜影院| 日韩中文字幕国产精品| 日韩av在线播放资源| 亚洲成人1234| 亚洲美女动态图120秒| 国产日韩欧美黄色| 高清欧美电影在线| 久久久久久国产精品三级玉女聊斋| 国产在线a不卡| 久久天天躁狠狠躁夜夜躁2014| 欧美乱大交xxxxx| 久久精品视频免费播放| 人妖精品videosex性欧美| 日韩精品中文字幕视频在线| 91免费人成网站在线观看18| 国产在线a不卡| 亚洲人免费视频| 久久久久久69| 国产精品久久久久久av| 日韩国产激情在线| 亚洲美女精品成人在线视频| 日韩福利伦理影院免费| 成人激情视频在线| www国产亚洲精品久久网站| 欧美精品电影在线| 性欧美暴力猛交69hd| 久久亚洲国产精品| 色悠久久久久综合先锋影音下载| 中文国产成人精品| 国产精品永久在线| 夜夜躁日日躁狠狠久久88av| 亚洲欧美另类自拍| 青草青草久热精品视频在线网站| 久久久久久久成人| 91精品视频在线免费观看| 久久久国产一区二区| 丝袜美腿精品国产二区| 亚洲aaa激情| 欧美午夜激情小视频| 亚洲精品天天看| 亚洲最大的网站| 伊人久久男人天堂| 日韩电影在线观看中文字幕| 色悠久久久久综合先锋影音下载| 中文字幕久热精品视频在线| 精品欧美激情精品一区| 久久理论片午夜琪琪电影网| 国产免费成人av| 久久综合久中文字幕青草| 日韩av在线直播| 欧美黑人xxxx| 久久黄色av网站| 亚洲国产精品国自产拍av秋霞| 国产精品久久久久久久久久久久久| 日韩**中文字幕毛片| 欧美多人乱p欧美4p久久| 91精品国产自产在线| 国产精品r级在线| 国产精品一区久久| 91久久精品日日躁夜夜躁国产| 国产综合视频在线观看| 欧美高清无遮挡| 国产在线拍揄自揄视频不卡99| 亚洲福利在线视频| 日韩视频第一页| 欧美日韩中文字幕日韩欧美| 国产精品99蜜臀久久不卡二区| 91国语精品自产拍在线观看性色| 在线观看亚洲区| 国产精品成av人在线视午夜片| 97精品久久久中文字幕免费| 亚洲综合精品伊人久久| 成人h猎奇视频网站| 欧美一级片免费在线| 久久亚洲精品毛片| 成人黄色生活片| 成人h片在线播放免费网站| 色99之美女主播在线视频| 日韩视频在线免费| 国产成人精品视频在线观看| 日韩激情视频在线| 亚洲天堂av在线免费| 亚洲欧洲一区二区三区在线观看| 成人伊人精品色xxxx视频| 国产精品99久久久久久www| 亚洲欧美www| 最近2019中文字幕第三页视频| 激情久久av一区av二区av三区| 91中文字幕在线观看| 亚洲午夜未满十八勿入免费观看全集| 久久五月天综合| 国产欧美一区二区三区四区| 日韩美女视频免费在线观看| 成人黄色免费在线观看| 欧美日韩成人在线播放| 久久精彩免费视频| 亚洲大胆人体视频| 日韩美女视频免费在线观看| 亚洲国产日韩欧美综合久久| 欧美日韩国产综合新一区| 欧美日韩一区二区免费视频| 疯狂做受xxxx欧美肥白少妇| 91精品久久久久久久久| 国产视频一区在线| 欧美性高跟鞋xxxxhd| 欧美日韩在线免费| 中文字幕久热精品在线视频| 欧美在线一区二区视频| xvideos成人免费中文版| 国产精品免费一区豆花| 成人免费观看网址| 国产精品亚洲第一区| 热99精品里视频精品| 日韩美女视频免费看| 日韩欧美视频一区二区三区| 亚洲精品电影网| 97激碰免费视频| 中文字幕亚洲欧美在线| 亚洲a∨日韩av高清在线观看| 久久国产精品久久久久久久久久| **欧美日韩vr在线| 国产精品国内视频| 91在线视频免费| 亚洲人成电影网站色…| 国产亚洲欧美日韩精品| 久久偷看各类女兵18女厕嘘嘘| 亚洲一区二区三区xxx视频| 亚洲男人天堂九九视频| 成人黄色在线播放| 亚洲高清一区二| 红桃av永久久久| 国产精品自拍视频|