我无法让它正常工作。
我在 main 中启动了变量,我想将其传递给其他函数并进行了更改。我知道唯一可以做到这一点的方法是使用指针或在主函数之外声明变量。 我更愿意使用指针
它是怎么做到的?
例如
int main(){
int variable1 = 5;
add(&variable1, 6);
printf("%d", variable1);
return 0;
}
int add(int *variable1, int addValue){
variable1 += addValue;
return 0;
}
我想打印 11 但我不知道这些指针是如何通过其他函数工作的
最佳答案
你只需要取消引用你的指针:
void add(int *variable1, int addValue)
{
*variable1 += addValue;
}
在您的函数调用中,您传入“&variable1”,这意味着“指向此变量的指针”。本质上,它在您的主函数中传入了 variable1 的确切内存位置。当你想改变它时,你需要通过放置星号“*variable1 += 6”来取消引用。取消引用表示“现在修改存储在该指针处的 int”。
当您在函数 def 中使用星号时,表示“这将是一个指向 int 的指针”。星号用于表示两种不同的事物。希望这对您有所帮助!
哦,还要将显式类型添加到函数调用中:
void add(int *variable1, int addValue)
关于c - 指针作为 C 中的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563061/