學生時代…
作者在學這一章節時, 坦白講….腦袋一片空白, 幾乎是用死背阿!
當出了社會後幾年(本行是玩PLC、Software platform、數位原理以及通訊拆解), 之後再來看CPP 這一章節, 變得很好從底層出發, 去了解這個語言獨有的一些 記憶體操作方法。
在C++ 世界裡面, 我們常常會利用函數去做運算, 甚至是處理些重複性高的工作
在講解函數之前,必須先把何謂函數的引數和參數弄個清楚。
函數的引數(argument) v.s. 函數的參數(parameter)
使用函數(或稱函式或副程式)時,常常會遇到這兩個名詞,本人也時常混淆,每個編輯的翻譯也不盡相同,但由於非常重要,必須做好釐清。
透過呼叫的方式來執行函數
我們是在B.中設定兩個引數a、b來使用這個函數。當電腦看到引數a、b後,便會將a、b傳遞給A.內的參數x、y,以執行函數所定義的運算,所以傳遞的方向是:「由引數(a、b)傳遞給參數(x、y)」。
如果你要簡單暴力的傳遞值的方式。
//函數定義
int MathFun(int x, int y) {
return x + y;
} Call by pointer 在我看到的網站以及資料…. 很多人稱作 Call by addres,我比較喜歡用 Call by pointer 這名子,
這邊以最簡單的swapfun作為範例
其中在傳址時相當於 int *x = &a; int *y = &b; 這樣的寫法。
int a = 6;
int b = 10;
// 觀察記憶體位置會不會變化??
void swapfun(int* x, int* y) {
cout << x << endl;
cout << y << endl;
int tmp = *x;
*x = *y;
*y = tmp;
cout << x <<endl;
cout << y << endl;
}
int main(void) {
// 傳址* 型態 只會接受參考&
swapfun(&a, &b);
}
a、b、x、y 記憶體位址都不一樣!!!!
參數與引數 https://notfalse.net/6/arg-vs-param
傳址:
*x = &y 經過這個address 等式指派給另一個地址, 這個傳址才算是完成!
// 檢測 變數會不會交換??
void swapfun(int* x, int* y) {
cout << *x << endl;
cout << *y << endl;
int tmp = *x;
*x = *y;
*y = tmp;
cout << *x <<endl;
cout << *y << endl;
}
int main(void) {
// 傳址* 型態 只會接受參考&
swapfun(&a, &b);
}
int a =0;
int& Ref_variable =a;
int main(void) {
// a 為字串變數
string a = "There is pointer A.";
cout << a << endl;
// b 為對 a 的指標
string* b = &a;
cout << b << endl;
// c 為對 a 的參考
string& c = a;
cout << c << endl;
return 0;
} import 與 export 在Node.js 有提到其用法: Node.js require、module以及exports 模組設定 - Hugo Habor 每一個Javascript檔案可當作獨立模組系統(ES Module) 1. Module(模組)…
作者今天遇到一個很奇怪的問題 寫程式寫到一半... 點擊應用程式時... 怎麼都跳不出畫面... 後來查詢了一下是Reg註冊可能被微軟更新給搞掉了... 文章資訊來源: 【以解決】各位.exe檔案打不開,不要相信"在 Windows 7 或 Windows Vista 中無法打開 .EXE 檔案"這篇文章…
Node.js可以提供你很多模組,今天來探索如何使用 Node.js 的 http 模組來架設一個簡單的伺服器。 本篇使用模組require 載入你所需要的模組。這次我們使用'http' 模組來創造一個簡單的server。 資料參考 Node.js - createServer 起手式 - iT…
針對Node.js來談談 require、module以及exports 模組設定。這些概念允許開發者將大型程序分解成小的、可管理的、可重用的部分,稱為模塊。 下面將逐一介紹這些概念,以及它們如何與 JavaScript 關聯。 An Essential Guide to Node.js Modules (javascripttutorial.net) 1. Module(模組)…
像是很多專案必須讀取國家資料中心的metadata,許多檔案格式為CSV、JSON、Html可以利用網頁技術去爬蟲;拿一個範例來嘗試看看就知道這些語法的實際用途。 [主題週]專題報導-開放資料 (Open Data)相關議題與應用 (114230) - Cool3c 在這裡我們使用台北市資料大平台 UBike2.0 作為資料依據! 目的 來抓取空位數量 >15, 抓取空位數量 <15。…