靳润昭C语言教程讲义 2001年2月17日 会变化 a|2b3 1015 【例8.2】可以说明这个问题。 main int n printf( input number \n") scanf(%d, &n) s(n) printf("n%d\n", n) It s(int n for(i=n-1: i>=l; i n-n printf("n=%d\n", n) 本程序中定义了一个函数s,该函数的功能是求∑n的值。在主函数中输入n值,并 作为实参,在调用时传送给s函数的形参量n(注意,本例的形参变量和实参变量的标识符 都为n,但这是两个不同的量,各自的作用域不同)。在主函数中用 printf语句输出一次n 值,这个n值是实参n的值。在函数s中也用 printf语句输出了一次n值,这个n值是形 参最后取得的n值0。从运行情况看,输入n值为100。即实参n的值为100。把此值传给 函数s时,形参n的初值也为100,在执行函数过程中,形参n的值变为5050。返回主函数 之后,输出实参n的值仍为100。可见实参的值不随形参的变化而变化。 832函数的返回值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数 值。如调用正弦函数取得正弦值,调用例8.1的max函数取得的最大数等。对函数的值(或 称函数返回值)有以下一些说明: 1)函数的值只能通过 return语句返回主调函数。 return语句的一般形式为 return表达式 第5页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第5页 会变化。 【例 8.2】可以说明这个问题。 main() { int n; printf("input number\n"); scanf("%d",&n); s(n); printf("n=%d\n",n); } int s(int n) { int i; for(i=n-1;i>=1;i--) n=n+i; printf("n=%d\n",n); } 本程序中定义了一个函数 s,该函数的功能是求∑ni 的值。在主函数中输入 n 值,并 作为实参,在调用时传送给 s 函数的形参量 n( 注意,本例的形参变量和实参变量的标识符 都为 n,但这是两个不同的量,各自的作用域不同)。在主函数中用 printf 语句输出一次 n 值,这个 n 值是实参 n 的值。在函数 s 中也用 printf 语句输出了一次 n 值,这个 n 值是形 参最后取得的 n 值 0。从运行情况看,输入 n 值为 100。即实参 n 的值为 100。把此值传给 函数 s 时,形参 n 的初值也为 100,在执行函数过程中,形参 n 的值变为 5050。返回主函数 之后,输出实参 n 的值仍为 100。可见实参的值不随形参的变化而变化。 8.3.2 函数的返回值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的 值。如调用正弦函数取得正弦值,调用例 8.1 的 max 函数取得的最大数等。对函数的值(或 称函数返回值)有以下一些说明: 1) 函数的值只能通过 return 语句返回主调函数。 return 语句的一般形式为: return 表达式;