在C語言中,可以通過函數的參數來傳遞數值或者變量的地址,然后在函數內部對參數進行賦值。有兩種方式可以對參數賦值:
#include <stdio.h>
void assignValue(int x) {
x = 10;
}
int main() {
int num = 5;
printf("Before assignment: %d\n", num);
assignValue(num);
printf("After assignment: %d\n", num);
return 0;
}
輸出結果:
Before assignment: 5
After assignment: 5
在這個例子中,盡管在assignValue
函數內部將參數x
賦值為10,但是在main
函數中打印參數num
時,參數的值并沒有改變。這是因為參數x
是在assignValue
函數中創建的一個副本,對副本的修改不會影響到原來的變量。
#include <stdio.h>
void assignValue(int* x) {
*x = 10;
}
int main() {
int num = 5;
printf("Before assignment: %d\n", num);
assignValue(&num);
printf("After assignment: %d\n", num);
return 0;
}
輸出結果:
Before assignment: 5
After assignment: 10
在這個例子中,通過在assignValue
函數的參數前加上*
來表示參數是一個指針變量,然后在函數內部使用指針操作符*
來訪問指針指向的變量。在main
函數中,通過&
運算符獲取變量num
的地址,并將地址傳遞給函數assignValue
。在函數內部,通過*x = 10
將指針x
指向的變量賦值為10,這樣就可以修改原變量的值。