一个函数中得变量,比如int a,在另一个函数中是改变不了它的。
例如
#include<stdio.h>
void change(double in);
int main(void)
{
double a = 0.0;
change(a);
printf("%lf", a);
}
void change(double in)
{
in = 2.0;
}
输出结果为
改变它的方法
指针
想要在一个函数中改变另一个函数得数值,可以传递指针,不能传递变量,因为传递变量,这两个函数中得变量是放在内存中不同位置的,在一个函数中是改变不了另一个函数的值的,想要改变只能直接改掉它的内存上的值
#include<stdio.h>
void change(double* in);
int main(void)
{
double a = 0.0;
change(&a);
printf("%lf", a);
}
void change(double* in)
{
*in = 2.0;
}
输出结果为
成功在一个函数中改变了另一个函数中变量的值。
这也是为什么scanf函数中用&
引用
通过引用符号&,这里的&不是取地址符号,表示引用传递过来的实参,引用的意思就是给传递过来的实参取了一个别名,对形参的操作就是对传递过来的实参的操作。
#include<iostream>
using namespace std;
int change(int& in)
{
in = 5;
return 0;
}
int main(void)
{
int a = 0;
change(a);
cout << a;
return 0;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。