一、常见错误
1、未定义先使用
1.1、源代码
1 2 3 4 5 6 7 8 9 10
| #include<stdio.h> int main() { printStr(); return 0; } void printStr() { printf("printStr()\n"); }
|
1.2、运行结果:
无法通过编译环节,理由是 printStr未声明定义
1.3、解决
增加函数声明或者把函数定义放在调用处之前
2、形参和实参不匹配
2.1、源代码
1 2 3 4 5 6 7 8 9 10
| #include<stdio.h> void printStr(int a,int b) { printf("printStr()-->%d,%d\n",a,b); } int main() { printStr(1); return 0; }
|
2.2、运行结果
无法通过编译环节
2.3、解决
只能按照形参个数进行传递
3、有多个函数名相同
3.1、源码
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include<stdio.h>
void test() {}
void test(int a) {}
int main() { test(); return 0; }
|
3.2、运行结果
无法通过编译环节
4、基本类型参数是值传递
4.1、源代码
1 2 3 4 5 6 7 8 9 10 11 12
| #include<stdio.h> void changeValue(int a) { a += 10; } int main() { int a = 10; changeValue(a); printf("a=%d\n",a); return 0; }
|
4.2、运行结果

既无法修改实参a的变量值
4.3、内存图
