在使用函数时,所有的实参都是通过“传值”方式传递的。这意味着每个实参都被求值,求值结果代替对应的形式参数,并且在函数中作为局部变量使用。如果一个变量传递给一个函数,这个变量在调用环境中所存储的值并不会被函数所修改。
#include <stdio.h> int compute_sum(int n); int main(void) { int n=3,sum; printf("%d\n",n); /* 3 is printed */ sum= compute_sum(n); printf("%d\n",n); /* 3 is printed */ printf("%d\n",sum); /* 6 is printed */ return 0; } int compute_sum(int n) /* sum the integers from 1 to n */ { //sum从整数1加到n int sum=0; for(;n>0;--n) /* stored value of n is changed */ sum+=n; // 所存储n的值被改变了 return sum; }尽管n被传递给compute_sum(),并且n的值在这个函数中被修改,但调用环境中n的值仍然保持不变。被传递的是n的值,而不是n本身。