在C语言中,可以通过函数的参数来传递数值或者变量的地址,然后在函数内部对参数进行赋值。有两种方式可以对参数赋值:
- 传递数值:直接将数值作为参数传递给函数,在函数内部对参数进行修改。
#includevoid assignValue(int x) { x = 10; } int main() { int num = 5; printf("Before assignment: %d\n", num); assignValue(num); printf("After assignment: %d\n", num); return 0; }
输出结果:
Before assignment: 5 After assignment: 5
在这个例子中,尽管在assignValue
函数内部将参数x
赋值为10,但是在main
函数中打印参数num
时,参数的值并没有改变。这是因为参数x
是在assignValue
函数中创建的一个副本,对副本的修改不会影响到原来的变量。
- 传递地址:通过传递变量的地址给函数的参数,可以在函数内部通过指针来修改原变量的值。
#includevoid assignValue(int* x) { *x = 10; } int main() { int num = 5; printf("Before assignment: %d\n", num); assignValue(&num); printf("After assignment: %d\n", num); return 0; }
输出结果:
Before assignment: 5 After assignment: 10
在这个例子中,通过在assignValue
函数的参数前加上*
来表示参数是一个指针变量,然后在函数内部使用指针操作符*
来访问指针指向的变量。在main
函数中,通过&
运算符获取变量num
的地址,并将地址传递给函数assignValue
。在函数内部,通过*x = 10
将指针x
指向的变量赋值为10,这样就可以修改原变量的值。