严格地讲, C 总是按值传递。你可以自己模拟按引用传递, 定义接受指针 的函数, 然后在调用时使用 & 操作符。事实上, 当你向函数传 入数组时, 编译器本质上就是在模拟按引用传递。但是 C 没有任何真正等同于正式的按引用传递或 C++ 的引用参数的东西。
下面是一个小例子说明这个问题:
changeTest
不能改变参数的值,但是changePara
可以。
#include <stdio.h>
void changeTest(int a){
a = 100;
}
void changePara(int* b){
*b = 100;
}
void main (){
int a = 1;
int b = 1;
changeTest(a);
changePara(&b);
printf("a=%d\n",a);
printf("b=%d\n",b);
}