《C++語言程式設計基礎》之函式學習筆記
引用的開銷比較小,因為只是傳遞指標,相當於變數多個名字
int i,j;
int &ri=i; //ri引用 賦值為i的
j=10;
ri=j; //ri賦值為j, 由於ri是引用,所以i也賦值為j
相當於i=j,引用是可以作為形參的 函式一般情況是單向傳遞的,形參在函式被呼叫的時候會分配儲存空間,相當於將實參的值複製給形參,被呼叫以後,形參有自己的記憶體空間,所以形參在函式中的變化是不會傳遞給實參的,函式是單向傳遞的。要實現引數的雙向傳遞,可以傳遞引用。 類物件作為函式引數的時候,有時候時間和空間的開銷會比較大,這個時候傳值就不太合適,由於引用的開銷比較小,傳引用就好,但是傳引用又不希望雙向傳遞。
相關推薦
清華大學《C++語言程式設計基礎》線上課程筆記05---vector物件,物件的複製與移動,string類
vector 物件 C++標準庫中的一個類模板 封裝任何型別的動態陣列,自動建立和刪除。 陣列下標越界檢查。 將動態陣列封裝成類的知識點中封裝的ArrayOfPoints也提供了類似功能,但只適用於一種型別的陣列。 vector<元素型別> 陣列物件名(陣列長度
清華大學《C++語言程式設計基礎》線上課程筆記04---指標
指標 static int i; static int* ptr = &i; 此處的*表示ptr是指標型別(地址型別),用來存放目標資料的地址 其本身也有地址,所以又指向指標的指標; *前面的 int 代表其指向的資料型別是 int 型,從目標i的起始單元地址取 int 資料型別位元
清華大學《C++語言程式設計基礎》線上課程筆記03---資料的共享和保護&陣列
資料的共享和保護 物件的生存期 static型別的區域性變數,生存期在整個程式,區域性可見。 void example() { static a=1; int b=2 } 當呼叫完example函式後,b消亡,a仍然存在; 再次呼叫該函式時,a值不會再次被賦值,仍保持之前資料;
清華大學《C++語言程式設計基礎》線上課程筆記01
使用除法的注意事項 double b = 4.0 * 1/239.0; 因為整數相除結果取整,如果引數寫1/239,結果就都是0 浮點數注意事項 浮點數是近似儲存,所以不能直接比較兩個浮點數的大小, 可以比較差值小於10的多少負多少次方. 逗號運算子 a=3 * 5,a * 4
C語言程式設計基礎-09函式與返回值及形參
函式 返回值 形參實參 函式 在大規模的程式中需要對語句進行分組管理,把相互之間聯絡比較緊密的語句合併成一組; 分組可以在多個不同層次上進行,最低一級分組的結果叫程式碼塊,程式碼塊由{}大括號包括; 在大括號前面新增 型別名 函式名()的就是函式; 函式的形式如 v
《C++語言程式設計基礎》之函式學習筆記
引用的開銷比較小,因為只是傳遞指標,相當於變數多個名字 int i,j; int &ri=i; //ri引用 賦值為i的 j=10; ri=j; //ri賦值為j, 由於ri是引用,所以i也賦值為j 相當於i=j,引用是可以作為形參的 函式一般情況是單向傳遞的
C語言程式設計基礎講座之函式
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
《C++語言程式設計基礎》學習之陣列指標與字串
陣列元素在記憶體中順次存放,它們的地址是連續的。元素間實體地址上的相鄰,對應著邏輯次序上的相鄰。 陣列名字是陣列首元素的記憶體地址,陣列名是常量,不能被賦值 陣列名是陣列的指標,指向首個元素的地址,多維陣列的n-1維是指標一維陣列初始化: 在定義陣列時給出陣列元素的初始值:列
《C++語言程式設計基礎》學習之物件複製與移動
淺層複製與深層複製 淺層複製,實現物件間資料元素的一一對應複製。 深層複製,當被複制的物件資料成員是指標型別時,不是複製該指標成員本身,而是將指標所指物件進行復制。 物件的淺層複製:傳遞的是指標的值 class Point { public: Point() :x(0),
《C++語言程式設計基礎》學習之字串
在c++中不建議繼續使用C語言風格的陣列字串,都使用字串類string表示字串,string實際上是對字元陣列操作的封裝string類常用的建構函式 string(); //預設建構函式,建立一個長度為0的串,例:string s1; string(const char *s
《C++語言程式設計基礎》學習之模板與群體資料
函式模板: 如果過載的函式,其解決問題的邏輯是一致的、函式體語句相同,只是處理的資料型別不同,那麼寫多個相同的函式體,是重複勞動,而且還可能因為程式碼的冗餘造成不一致性。 template<typename T> T abs(T x) { return x
《C++語言程式設計基礎》學習之棧模板
棧是隻能從一端訪問的線性群體,可以訪問的這一端稱棧頂,另一端稱棧底。棧是一種後進先出的資料結構。簡易計算器實現: Stack.h #pragma once #ifndef STACK_H #define STACK_H #include<cassert> tem
C++程式設計基礎之函式
函式是程式程式碼的一個自包含單元,用於完成某一特定的任務。 定義函式的目的: 避免重複的程式設計, 使程式更加模組化,便於閱讀和修改。 一個程式必須有且只有一個main()函式,C++從main()函式開始執行。 C++語言中,所有函式都是平行獨立的,無主次或相互包含之分。函式可以巢狀呼叫,
《C++語言程式設計基礎》學習類與物件之多檔案結構和預編譯命令
C++程式的一般組織結構: 一個工程可以劃分為多個原始檔,例如: 類宣告檔案(.h檔案) 類實現檔案(.cpp檔案) 類的使用檔案(main()所在的.cpp檔案) 利用工程來組合各個檔案。Point.h class Point { //類的定義 public:
《C++語言程式設計基礎》學習第十章泛型程式設計與C++標準模板庫
STL簡介:標準模板庫(Standard Template Library,簡稱STL)提供了一些非常常用的資料結構和演算法 標準模板庫(Standard Template Library,簡稱STL)定義了一套概念體系,為泛型程式設計提供了邏輯基礎 STL中的各個類模板、
C語言實例解析精粹學習筆記——18
static abcd str 工作 結果 size put cls 字符 《C語言實例解析精粹》中編譯環境采用的是Turbo C 2.0。但是這個編譯器年代久遠,較新的編譯器對書中的某些例子支持不好,在學習的時候同時做一些筆記。 實例18:將一個無符號整數轉換為任意d進制
C語言實例解析精粹學習筆記——19
sca sta tran int nbsp unsigned define col 表示 實例19:判斷正整數n的d進制表示形式是否是回文數(順著看和倒著看相同的數)。 主要思路: 一種方法:將正整數n數轉換成d進制的數,逐個比較首尾對應數字,判斷是否為回文數。 另一種方法
C語言實例解析精粹學習筆記——29
r+ 函數 復制 printf bsp 不同 getch 多余 個數 題目: 將字符行內單字之間的空格平均分配插入到單字之間,以實現字符行排版。也就是輸入一個英文句子,單詞之間的空格數目不同,將這些空格數平均分配到單詞之間,重新輸出。 代碼如下(是原書中配套
C語言實例解析精粹學習筆記——32
組合 pri 結構體指針 name ber ESS tdi 筆記 string 實例32: 編制一個包含姓名、地址、郵編和電話的通訊錄輸入和輸出函數。 思路解析: 1、用結構體來完成姓名、地址、郵編和電話的組合。 2、結構體指針的使用。 3、malloc的使
c語言程式設計基礎
1. c語言的特性 A: c語言是一種底層語言 B: c 語言是一種小型語言 C: c 語言一種包容性語言,c語言假設使用者知道自己做什麼,