1.函数原型
- 这样的话编译器可能会编译不出来。那么如何实现主函数在上,自己定义的函数在下面呢?
- 只需要将自定义的函数头粘贴一下,加上分号
void sum(int begin,int end);
//这段代码称为函数的 *原型声明*
void sum(int begin,int end)
{
int i;
int sum = o;
for(i = begin;i<=end;i++;)
{
sum = sum + i;
}
printf("%d到%d的和是:%d",begin,end,sum);
}//这段代码称为 *函数的定义*
2.参数传递
- 调用时函数表中给的参数类型不匹配时,可能会丢失数据,或者直接报错。
只能传 值 给函数,而不能传变量,所以通过函数来交换变量的值的程序无法实现。
形式参数和实际参数的区别:函数表中的参数就是参数,调用函数时的数是值。
程序中,传入了变量而不是值,所以程序无法实现。
3.本地变量
在main函数内调用swap函数的时候会跳到swap函数的内存空间,在不同的大括号的变量是互不干扰的。main函数内部的函数调用不是:
{
....
{
......
}
.....
}
大括号内的变量可以在小括号内访问,
小括号内的变量只能在小括号内访问。
变量只能在它自己的块内访问。
而是 独立的块 ?:
{
.....
}
{
......
}
- 变量的生存期和作用域取决于它所在的块
- 写函数原型的时候,要写对参数表
- 一般来说,参数表中的逗号是标点符号,表示分隔
- 但是如果再加一个括号就是逗号运算符。那么(a,b)的值就是b
- C语言不允许函数里定义另外一个函数。可以在一个函数里放另一个函数的声明。
- 第一行类似于int i,j,k;(函数的原型声明)
- 第二行就等于 return i; return语句之后要加表达式,不建议加括号因为会被人误解为return是个函数。
- void f(int);这种情况下,形参既没有明确的名字也没有被使用,只是提供了参数类型,编译器会接受这种声明。
- main函数,程序的起点。
- 传统下,程序返回的值是0表示程序成功执行;返回别的指标是程序有问题。