[英]Manipulating Variable Given to Void Function in C
有沒有辦法實現那種代碼
#include<stdio.h>
void func(int a)
{
a++;
}
int main()
{
int a=0;
func(a);
printf("%d", a);
return 0;
}
當我在主函數中重用它時,我對變量 a 所做的更改似乎沒有延續。 我認為它是通過使用靜態變量來完成的,但我不知道該怎么做
你需要一個'c風格的參考傳遞'
void func(int *a)
{
(*a)++;
}
和
func(&a);
即 - 將“a”的地址作為指針傳遞,然后通過取消引用指針來更新它
如果a
通過副本傳遞(就像在這種情況下),您的函數所做的更改不會影響main
中的變量。 您應該通過引用傳遞此參數。
所以解決方案必須像下面這樣
#include<stdio.h>
void func(int* a) {
(*a)++;
}
int main()
{
int a=0;
func(&a);
printf("%d", a);
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.