1. 程式人生 > >C++分別用指標和引用實現交換函式

C++分別用指標和引用實現交換函式

       前幾天上課老師給出了一個課堂作業:請分別用指標和引用來實現兩個數的交換。雖然題目比較俗套,但是好久沒寫過C++程式了,依然很生疏,所以我決定總結一下自己的實現,程式粗糙,風格也混合著C,希望大家給提提建議。

       老師出這個題目的目的無非是想讓我們聯絡一下C++基本功,採用指標的方式是C語言的風格,用指標來儲存變數的地址,然後通過取地址的內容,直接對記憶體所儲存的資料進行了操作,而引用則是C++風格,引用相當於對一個變數起了一個別名,正常的名字跟別名指示的是同一塊記憶體地址,這裡要注意指標與引用在使用過程的程式碼。

#include<cstdio>
//#include<iostream>
//using namespace std;

int Ptr_swap(int *pa,int *pb){ //使用指標方式
int temp;
temp = *pa;    //將指標指示的內容賦值給中間變數
*pa = *pb;
*pb = temp;

return 0;
}
int Cite_swap(int &ca,int &cb){ //使用 引用方式
int temp;
temp = ca;     //因為引用是變數的別名,他們指向相同的記憶體空間
ca = cb;       //所以可以直接使用別名來交換
cb = temp;

return 0;
}
int main(int args,char *argv[]){

//printf("hello ");

// char *s[] = {"yums","qq","tt"};

int x = 1;
int y = 2;
int *px = &x;
int *py = &y;

int Perror = Ptr_swap(px,py);
// cout<<x<<y<<endl;
printf("the sort by pointer is:%d %d \n",x,y);

int &cx = x;
int &cy = y;

int Cerror = Cite_swap(cx,cy);
printf("the sort by cite is:%d %d\n",x,y);

// printf("%c\n",86);

return 0;
}