C语言中传值传址如何区分,能否详细解释一下?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1385个文字,预计阅读时间需要6分钟。
2.3 函数II(Functions II)参数按值传递和按地址传递(Arguments passed by value and by reference)目前为止,我们看到的函数中,传递到函数中的参数全部是按值传递的(by value)。
2.3 函数II(Functions II)
参数按数值传递和按地址传递(Arguments passed by value and by reference)
到目前为止,我们看到的所有函数中,传递到函数中的参数全部是按数值传递的(by value)。也就是说,当我们调用一个带有参数的函数时,我们传递到函数中的是变量的数值而不是变量本身。 例如,假设我们用下面的代码调用我们的第一个函数addition :
int x=5, y=3, z;
z = addition ( x , y );
在这个例子里我们调用函数addition 同时将x和y的值传给它,即分别为5和3,而不是两个变量:
这样,当函数addition被调用时,它的变量a和b的值分别变为5和3,但在函数addition内对变量a 或b 所做的任何修改不会影响变量他外面的变量x 和 y 的值,因为变量x和y并没有把它们自己传递给函数,而只是传递了他们的数值。
但在某些情况下你可能需要在一个函数内控制一个函数以外的变量。
本文共计1385个文字,预计阅读时间需要6分钟。
2.3 函数II(Functions II)参数按值传递和按地址传递(Arguments passed by value and by reference)目前为止,我们看到的函数中,传递到函数中的参数全部是按值传递的(by value)。
2.3 函数II(Functions II)
参数按数值传递和按地址传递(Arguments passed by value and by reference)
到目前为止,我们看到的所有函数中,传递到函数中的参数全部是按数值传递的(by value)。也就是说,当我们调用一个带有参数的函数时,我们传递到函数中的是变量的数值而不是变量本身。 例如,假设我们用下面的代码调用我们的第一个函数addition :
int x=5, y=3, z;
z = addition ( x , y );
在这个例子里我们调用函数addition 同时将x和y的值传给它,即分别为5和3,而不是两个变量:
这样,当函数addition被调用时,它的变量a和b的值分别变为5和3,但在函数addition内对变量a 或b 所做的任何修改不会影响变量他外面的变量x 和 y 的值,因为变量x和y并没有把它们自己传递给函数,而只是传递了他们的数值。
但在某些情况下你可能需要在一个函数内控制一个函数以外的变量。

