一、根據以下C程式碼,回答下列問題:
在 C 語言中,運算子 * 和 & 有著特定的含義:
在您提供的代碼第 8 行至第 12 行中:
第 8 行:void f(int *z, int *w) 定義了一個函數 f,它有兩個參數 z 和 w,這兩個參數都是整數型別的指針,這意味著 z 和 w 可以存儲整數變數的地址。
第 9 行:int n = 13; 這裡簡單地宣告了一個整數變數 n 並初始化為 13。
第 10 行:g(w, &n); 這行代碼調用了函數 g。參數 w 是一個指向整數的指針,所以 g 函數將直接使用這個指針參照的值。&n 表示取變數 n 的地址,將這個地址傳給 g 函數的第二個參數。
第 11 行:printf("*z = %d, *w = %d, n = %d\n", *z, *w, n); 這裡的 *z 和 *w 是通過指針 z 和 w 取它們所指向的值,n 則是直接使用該變數的值。
所以,在這段代碼中,* 用來從指針獲取值,而 & 用來獲取變數的地址。這些操作允許函數 f 和 g 通過參考來操作變數 i、j 和 n 的值,而不是通過值來操作(這意味著它們可以修改傳入的變數的值)。