int main ()与void main():
按照新的C99标准,即使函数本身没有定义返回值,编译器也会加上,以返回给激发程序,运行状态。很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* … * / } is not and never has been C++, nor has it even been C. ( void main( ) 从来就不存在于 C++ 或者 C )。下面我分别说一下 C 和 C++ 标准中对 main 函数的定义。
1.void 和 int 表明声明不同的主函数返回值,不声明则默认返回值为int整型。
2.int main可移植性强。
3.C语言从来没声明过void main
,只声明过main()
。
4.抛弃一切用void main
编写C程序的习惯!
函数定义
- 函数中不能嵌套其它函数;
- 不论
return
语句返回值为何种数据类型,最后都将自动转换为函数类型(返回类型);void
表示不返回任何数值。
函数调用:
格式: 函数名(参数1,参数2)
- ()起到了重要作用,即使没有参数也需要();
- 参数是表达式的结果,包括:常量、变量、函数返回值、表达式、数组;
int a,b,c;
a=1;
b=3;
c=max(a,b);
c=max(1,3);
c=max(a,3);
c=max(1,1+2);
c=max(1,max(2,3));
c=max(a[1],3);
调用方式:(类似于变量的的调用)
printstar();// 单独作为一个语句
z=max(x,y);// 函数直接附在表达式中
z=max(max(a,b),c);// 函数作为函数的参数
函数原型
#include<stdio.h>
void sum(int begin, int end); //函数声明(函数原型);现在一般放在主函数外面;
int main() {
sum(10, 20);//函数调用;
sum(30, 90);
return 0;
}
void sum(int begin, int end) //函数定义
{
int sum = 0;
int i;
for(i = begin; i <= end; i++) {
sum += i;
}
printf("%d\n", sum);
}
本地变量的规则
- 本地变量可以定义在块(即
{}
)内:函数的块、语句的块,甚至随便{}
内;{}
内的变量在{}
外无效;(程序运行进入这个块之前,本地变量不存在,离开这个块,本地变量也消失;){}
外的变量在{}
内有效;{}
内的同名变量会掩盖{}
外的(Java不同)
其它
不需要调用参数时,用void f(void);
void f()
表示f函数的参数表未知,不表示没有参数;
return i;
不建议加括号