参数与返回值

C 默认值传递:参数是副本。函数内改参数通常改不到外面——想改外部要传指针。

1. 完整例子:值传递改不动外面

C
1#include <stdio.h>
2 
3void try_change(int x) {
4 x = 100; // 只改副本
5}
6 
7int main(void) {
8 int a = 1;
9 try_change(a);
10 printf("a=%d\n", a); // 仍是 1
11 return 0;
12}

2. 指针传递才能改到外面

C
1void change_real(int *x) {
2 if (x != 0) {
3 *x = 100;
4 }
5}
6 
7/* main 里:change_real(&a); 则 a 会变成 100 */

3. 返回值约定