函数中参数(地址和变量)
前言
函数中使用参数是否会改变主调函数中的变量?全局变量在函数如何改变?
示例
函数中的全局变量
1 | int x = 1; |
在块中,重新定义了局部变量x,(因为同名)所以全局变量暂时被覆盖。当跳出块时x变为全局变量。
1 | int x = 1; |
因为全局变量随处可用,所以可在块中修改x的值。
所以全局变量很容易被修改,一般将固定值设为全局变量,使用const修饰。
函数中的参数。
一般由主调程序将变量传给函数。
- 例如函数
1 | int function(const int arr[], int x, int n) |
- 此时函数中的
int x, int n已经是原始数据的备份,所以无在函数中如何修改,都无法改变主调函数中相应的值。 - 而
const int arr[]则是一个数组指针。const 的作用是防止修改数组中的值(能修改地址)。如果不加const,就可以在函数中修改它的值(也能修改地址)
