指针作为C中的函数参数

Sup*_*vah 1 c variables pointers scope

我无法让这个工作.

我在main中启动了变量,我希望将其传递给其他函数并进行更改.我知道可以做到的唯一方法是使用指针或在主函数之外声明变量.我更喜欢使用指针

怎么做?

例如

int main(){
    int variable1 = 5;
    add(&variable1, 6);
    printf("%d", variable1);

    return 0;
}

int add(int *variable1, int addValue){
    variable1 += addValue;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想打印11但我不知道这些指针如何通过其他功能

Kie*_*eli 6

您只需要取消引用指针:

void add(int *variable1, int addValue)
{
    *variable1 += addValue;
}
Run Code Online (Sandbox Code Playgroud)

在函数调用中,传入"&variable1",表示"指向此变量的指针".基本上,它传递main函数中variable1的确切内存位置.如果要更改它,则需要通过输入asterix"*variable1 + = 6"来取消引用.取消引用说'现在修改存储在这个指针的int'.

当你在函数def中使用asterix时,意味着'这将是一个指向int的指针'.星号用于表示两种不同的东西.希望这可以帮助!

哦,还要在函数调用中添加显式类型:

void add(int *variable1, int addValue)
Run Code Online (Sandbox Code Playgroud)


小智 5

你只是忘了取消引用指针:

*variable1 += addValue;
Run Code Online (Sandbox Code Playgroud)

并且所有函数参数必须具有显式类型.

void add(int *variable1, int addValue)
Run Code Online (Sandbox Code Playgroud)