C陣列介紹

一個C陣列的介紹 陣列是一個可以儲存多個值的變數。 在C語言中,陣列中的每個值必須有相同的類型。這意味著你可以有int值的陣列,也可以有double值的陣列,以此類推。 你可以像這樣定義一個int值的陣列: int prices[5]; 你必須總是指定陣列的大小。C本身並不提供動態陣列(你需要使用像是鏈表之類的資料結構來實現)。 你可以使用常數來定義陣列的大小: const int SIZE = 5; int prices[SIZE]; 你可以在定義時初始化陣列,像是這樣: int prices[5] = { 1, 2, 3, 4, 5 }; 但你也可以在定義之後賦予值,像這樣: int prices[5]; prices[0] = 1; prices[1] = 2; prices[2] = 3; prices[3] = 4; prices[4] = 5; 或者,更實際的做法是使用迴圈: int prices[5]; for (int i = 0; i < 5; i++) { prices[i] = i + 1; } 你可以使用方括號在陣列變數名稱後面指定索引值,來參考陣列中的某個項目。像這樣: prices[0]; /* 陣列項目值:1 */ prices[1]; /* 陣列項目值:2 */ 陣列的索引從0開始,所以一個有5個項目的陣列,像上面的prices陣列,其項目範圍從prices[0]到prices[4]。...

Go 中的指標

假設你有一個變數: age := 20 使用 &age 可以取得這個變數的指標,也就是它在記憶體裡的位址。 當你有了這個變數的指標後,可以使用 * 運算子來取得它指向的值: age := 20 ageptr := &age agevalue := *ageptr 這在你想要呼叫一個函式並將該變數作為參數傳遞時很有用。預設情況下,Go 會在函式中複製該變數的值,所以這不會改變 age 的值: func increment(a int) { a = a + 1 } func main() { age := 20 increment(age) //age 仍然是 20 } 你可以使用指標來解決這個問題: func increment(a *int) { *a = *a + 1 } func main() { age := 20 increment(&age) //age 現在變成了 21 }

如何在C中使用NULL

C語言中使用空指針的簡要指南 許多編程語言都使用了「null」的概念。 Go 語言使用「nil」,JavaScript 使用「null」,Python 使用「None」等等。 而在C語言中,則使用「NULL」。 然而,C語言中的NULL與其他語言使用方式有所不同。在C語言中,NULL僅用於標識一個空指針。 當我們初始化一個指針時,有時候我們並不知道它要指向什麼。這時NULL就派上用場了: int *p_some_variable = NULL; NULL並不是默認可用的:你需要包含stdio.h標頭文件才能使用它(或者如果你更喜歡的話,可以使用stddef.h): #include <stdio.h> int main(void) { int *p_some_variable = NULL; } 否則,C編譯器會報錯: hello.c:3:26: error: use of undeclared identifier 'NULL' int *p_some_variable = NULL; ^ 1 error generated. 你可以通過將指針與NULL進行比較來檢查它是否為空指針: #include <stdio.h> int main(void) { int *p_some_variable = NULL; if (p_some_variable == NULL) { printf("equal"); } } 在實際應用中,NULL是一個等於0或 "\0"的常數。 這就是為什麼你可以使用以下方式將字符串設置為NULL: char *a_string = '\0';