c++引用問題
阿新 • • 發佈:2017-08-30
c++引用
1、整型變量的引用
程序如下:
#include <stdlib.h>
#include <iostream>
using namespace std; int main() { int a=10; int &b=a; b=200;//此處變量賦值不能int ,否則重定義 cout<<"此時a的值是;"<<a<<endl; a=100; cout <<"此時b的值是:"<<b<<endl; system("pause"); return 0; }
標明,引用無非就是給已經出現的變量定義了一個別名。所以在程序執行的過程中,對原來的變量做何種操作和對於他唯一的別名做什麽操作,其實是別無二致的事情,因為本質上,兩者是一種東西。
2、結構中的引用
#include <stdlib.h> #include <iostream> using namespace std; typedef struct{ int x; int y; }COORD;//結構體的定義,這是結構體的名字、 int main(){ COORD c;//結構體類型的c. COORD &c1=c;//數據類型就是結構體名,然後按格式&別名 c1.x=10; c1.y=29; cout<<c.x<<endl<<c.y<<endl; system("pause"); return 0; }
運行結果:
註意的問題:結構體的定義、結構體引用時,就結構體名就相當於數據類型。
3、指針中的引用
#include <stdlib.h> #include <iostream> using namespace std; int main() { int a=10; int *p=&a;//定義一個指針p,它指向a.註意& int *&q=p;指針類型引用的格式:數據類型 * & 別名=原來指針 *q=5;//註意不能前面再加數據類型,否則出現重復定義 cout <<a<<endl; system("pause"); return 0; }
運行結果:
4、引用後的別名作為函數參數
代碼:
#include <stdlib.h> #include <iostream> using namespace std; //聲明一個具有交換功能的函數 void fun(int &a,int &b);//a,b分別是實際參數的別名,作為形參使用,註意起別名的時候一定要加數據類型的啊 int main() { int x=10; int y=20; cout <<x<<","<<y<<endl; fun(x,y); cout<<x<<","<<y<<endl; system("pause"); return 0; } void fun (int &a,int &b){ int c=0; c=a; a=b; b=c; }; 運行結果:
今天主要學習了c++的幾種引用的類型,搞清楚沒種引用相應的格式類型,理解也很容易。今天的學習到此為止。
c++引用問題