函数调用和函数定义的顺序。
如果调用写在了函数定义的前面,则必须加函数前置声明。
函数前置声明的作用:
/**
* 无返回值函数测试
*/
# include <stdio.h>
int main() {
int a=1, b=2, c=3, d=4;
void max(int x, int y); //函数的声明,void表示函数无返回值,max是函数名,x y是形参
max(a, b);
max(c, d);
}
//每次当调用完max函数后,max里面所有变量都会被释放掉!下次在使用max时,再为xy分配空间,分配空间的地址不一定是同一块空间!
void max(int x, int y) {
x>y ? printf("%d\n",x): printf("%d\n", y);
}
/**
* 有返回值函数测试
*/
# include <stdio.h>
int main() {
int f(void); //函数f的定义,返回值类型为int
printf("%d\n", f());
}
//return;用来终止函数,向主调函数返回表达式的值,如果表达式为空,则只终止函数,不向主调函数返回任何值;
//而break;终止的是离他最近的for或switch
int f() { //括号中可写void,也可不写,表示干函数不接收数据,int表示返回值类型
return 10.5;//向主调函数返回10,返回值类型以函数名前的类型为准!
}
变量:
按作用域分:
局部变量 在一个函数内部定义的变量或者函数的形参都统称为局部变量,局部变量只能在本函数内部使用。
int i = 99;
void f(int i) {
i = 100;
printf(“i = %d\n”, i); //输出结果为100
}
//字符输入/输出函数
scanf(" %c", &a)
printf("%c\n", getchar())
putchar('a');
//字符串输入/输出函数
scanf/printf
gets/puts