函数参数在函数内部与局部变量处于同一个作用域中,但是它们在使用时会有不同的作用。函数参数是在函数调用时被赋值的,而局部变量是在函数内部定义并赋值的。函数执行时,函数参数传递的值会被复制到一个新的变量中,这个新的变量只在该函数内部有效。例如:
void foo(int x) {
printf("%d\n", x); // x是函数参数,在函数内部可以直接引用
int y = 5; // y是局部变量,在函数内部定义
printf("%d\n", y); // 在函数内部可以直接引用
}
int main() {
int a = 10;
foo(a); // 调用foo函数时将a的值传递给x参数
return 0;
}
在上面的例子中,函数参数x和局部变量y都处于foo函数的作用域中,但它们在内存中占有不同的位置。x是在函数调用时被复制到一个新的变量中,而y是在函数内部定义的。