簡體   English   中英

在 C 中操作給定 Void 函數的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM