[英]How to modify variables passed by value instead of by reference within function in C?
如何修改在C函數中按值而不是按引用傳遞的變量?
void fun_a(int a, int b) {
....
}
int main() {
int x = 5, y = 6;
printf("%d, %d", x, y); // 5, 6
fun_a(x, y); // pass by value
printf("%d, %d", x, y); // 1, 2
return 0;
}
如何使用fun_a
更改變量?
有什么辦法嗎? 雖然我知道它可以通過輕松傳遞引用來更改變量。
C不了解參考。 請改用指針。
void fun_a(int *a, int *b) {
*a = 10;
*b = 12;
}
int main() {
int x = 5, y = 6;
printf("%d, %d\n", x, y); // 5, 6
fun_a(&x, &y); // pass pointer to variable
printf("%d, %d\n", x, y); // 10, 12
return 0;
}
簡單的答案:你不能。 為了實現您的目標,您必須通過指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.