在C语言中,可以通过函数的参数来传递数值或者变量的地址,然后在函数内部对参数进行赋值。有两种方式可以对参数赋值:
#include <stdio.h>
void 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
函数中创建的一个副本,对副本的修改不会影响到原来的变量。
#include <stdio.h>
void 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,这样就可以修改原变量的值。