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但我不知道这些指针如何通过其他功能
您只需要取消引用指针:
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)
归档时间: |
|
查看次数: |
232 次 |
最近记录: |