初學c++,初寫部落格,寫得不好,敬請見諒。
一、什麼是引用?
對記憶體空間中儲存的資料的標識,通過該標識可以訪問記憶體中的對應資料。
我認為:所有的變數本身都是乙個引用。
如:int a=0;
int &b=a;
1、當記憶體空間無可用於引用的資料時,使用語句宣告乙個變數:int a=0;系統將在棧上為變數分配乙個空間a以儲存值0,此時,識別符號a可以認為是乙個引用,它引用a空間上的資料。
2、當記憶體空間有可用於引用的資料時,使用語句宣告乙個引用:int &b=a;b是乙個引用,他引用a空間上的資料。
這種兩種建立引用的區別在於:記憶體空間是否有可用於引用的資料。何謂可用於引用的資料?同時滿足這兩個條件:1.記憶體空間上有資料,2.該資料存在乙個已知的引用識別符號。
二、引用的使用場景和初始化引用的方法
1、區域性變數
在本地作用域範圍內,區域性引用對像初始化方法:
int a=0; //待引用的變數
int &b=a; //引用初始化
在變數名前加上乙個&符號,表明該變數是乙個引用,定義引用時必須同時初始化該引用。
2、函式引數
宣告函式時,在引數名前加上乙個&符號,表明該引數是乙個引用,該引用引數在函式呼叫時,會自動引用傳入的實參引數標識的資料。
3、類成員
宣告型別的成員為引用時,同樣在成員名前加上乙個&符號,表明該成員是乙個引用。初始化該成員只能在建構函式的前導中進行。
三、引用的作用
在大物件傳參過程中,如果不使用引用,傳參實際上是將傳入的變數複製到新的記憶體空間中,而使用引用,實參和形參標識的資料其實是同乙個,這樣,可以減少傳參對於空間和時間的消耗。
四、運算子
介紹了三類運算子:算術運算子(+、-、*、/、%)、邏輯運算子(&&,||,!)、位運算子(&,|,^,>>,<
五、製作乙個基於堆疊的計算器
該部分教怎麼製作乙個簡單的計算器,該計算器要實現以下功能:
1.該計算器可以從鍵盤上獲取一堆數字並儲存下來,然後將已儲存的數字顯示出來
2.當該計算器從鍵盤上獲取到的不是數字且為+,-,*,/時,同時儲存的數字個數大於等於2時,使用獲取到的運算子將最後儲存的兩個數字取消儲存並將這個兩個數字按獲取到的算術運算子計算得到新值,然後將這個新值儲存。然後顯示已儲存的所有值。
3.當該計算器從鍵盤上獲取到的不是數字且為+,-,*,/時,同時計算器中儲存的數字只有乙個,將這數字同時作為第一運算元和第二運算元並使用獲取到的算術運算子計算得到新值,並將新值儲存,然後顯示已儲存的所有值。
在該部分的學習過程中,我認為以下幾點是最重要的:
1.const引用變數可以使用const或非const的引用變數進行賦值,而非const引用變數不能用const引用變數賦值。
2.const變數只能呼叫該變數型別定義的const成員函式。
C 第二章實踐
main方法是程式執行的入口 下面的兩個程式之間有點小區別,注意比較 情況一 輸入十個資料會檢查十個數中的偶數 using system using system.collections.generic using system.linq using system.text using system...
python第二章上機實踐 第二章上機實踐報告
設計乙個平均時間為o n 的演算法,在n 1 n 1000 個無序的整數中找出第k小的數。輸入格式 輸入有兩行 第一行是n和k,0 第二行是n個整數 輸出格式 輸出第k小的數 輸入樣例 在這裡給出一組輸入。例如 10 4 2 8 9 0 1 3 6 7 8 2 輸出樣例 在這裡給出相應的輸出。例如 ...
C 第二章學習
在c 中用同一名字定義多個函式,多個同名函式的個數和型別可以完全不同。int abs int n double abs double n 當同樣名字的函式出現在同一作用域內,就是函式過載。一般過載函式執行相同的功能。必須有兩種差別之一 1 乙個或多個引數的型別不同。2 函式的引數個數不同。如果內部變...