到底什么时候值才会放生改变呀
比如第一张图 我明白行参无法改变实参的值,但是为什么第二张图的值会发生改变呢
到底什么时候值会发生改变 什么时候值不发生改变呀
第二张图中,x和y申明成全局变量了,所以num和main函数访问的是同一个变量,自然就会被修改了
而第一张图是函数参数,在变量传递给函数时,函数内部实际是将变量复制了一份,因此函数内部只是修改了复制的变量,而不是main函数中传递的变量,因此无法实现传递变量值的修改
第二张图使用了extern关键字,是用来命声明外部变量的,这种情况下,对x,y做的改变也会影响到原来的值。
还有一种会改变原来的值的方法就是引用传参,比如第一张图,fun函数如果改成引用传参就是:
void fun(int &a, int &b, int &c) // 引用传参
{
// 引用传参会影响到原来的值
a = 456;
b = 567;
c = 678;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: