程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 引用,引用

C++ 引用,引用

編輯:C++入門知識

C++ 引用,引用


本文主要記錄了C++中的引用特性,總結了一下代碼示例和錯誤。


對於引用,創建的時候就要說明引用的對象是哪一個,而且以後都不會修改這個引用的對象。引用就相當於一個變量的別名。


#include <iostream> #include <string.h> using namespace std; void swapOne(char *&x,char *&y)//指針的引用 { char *temp; temp = x; x = y; y = temp; } void swapTwo(char **x,char **y)//指針的指針 { char *temp; temp = *x; *x = *y; *y = temp; } void swapThree(char *x,char *y)//指針的傳值(這種方法是不行的,相當於值傳遞) {//有人會誤解這個,因為可能使用過 利用指針交換2個整數。這還是有差別的。 char *temp; temp = x; x = y; y = temp; } int main() { char *ap = "Hello";//*ap的內容是H,*bp的內容是H char *bp = "How are you?"; cout<<"ap: "<< ap << endl; cout<<"bp: "<< bp << endl; //swapOne(ap,bp); //swapTwo(&ap,&bp); swapThree(ap,bp); cout<<"swap ap,bp"<<endl; cout<<"ap: "<< ap << endl; cout<<"bp: "<< bp << endl; return 0; }
#include <iostream> using namespace std; const float pi=3.14f;//常量 float f;//全局變量 float f1(float r) { f = r*r*pi; return f; } float& f2(float r)//返回引用 { f = r*r*pi; return f; //局部變量的引用返回(注意有效期),系統運行正常,但是結果會出錯。 /*float ff = f; return ff;*/ } int main() { float f1(float=5);//默認參數5,可以修改全局變量f=78.5 float& f2(float=5);//同上 float a=f1(); //float& b=f1();//f1()函數中,全局變量f的值78.1賦給一個臨時變量temp(由編譯器隱式建立),然後建立這個temp的引用b,對一個臨時變量temp引用會發生錯誤 float c=f2(); float& d=f2();//主函數中不使用定義變量,而是直接使用全局變量的引用。這種方式在全部4中方式中,最節省內存空間。但須注意它所引用的有效期。 //此處的全局變量f的有效期肯定長於引用d,所以安全。例如,將一個局部變量的引用返回。 d += 1.0f; cout<<"a = "<< a <<endl; //cout<<"b = "<< b <<endl; cout<<"c = "<< c <<endl; cout<<"d = "<< d <<endl; cout<<"f = "<< f <<endl; return 0; }
#include <iostream> using namespace std; class Test { public: void f(const int& arg); private: int value; }; int main() { int a = 7; const int b = 10; //int &c = b;//錯誤:b為常量,但是C不是常量引用,正確的:const int &c=b; const int &d = a; a++; //d++;//錯誤,d為常量引用,所以不能修改 Test test; test.f(a); cout << "a = "<< a <<endl; return 0; } void Test::f(const int &arg) { //arg = 10;//常量不能修改 cout <<"arg = "<< arg <<endl; value = 20; } /* * 對於常量類型的變量,其引用也必須是常量類型的。 * 對於非常量類型的變量,其可以是非常量的。 * 但是,注意:無論什麼情況下,都不能使用常量引用修改引用的變量的值。 */

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved