C++程序的执行顺序究竟是什么?
看教材说,是从main函数开始执行,但是我发现不对:我写了个小程序,main函数中包含一个函数调用k(),然后把k函数声明放在main()中,当然编译通过;如果删除声明就...
看教材说,是从main 函数开始执行,但是我发现不对:我写了个小程序,main函数中包含一个函数调用 k (),然后把k函数声明放在main()中,当然编译通过;如果删除声明就编译失败。但我把k()函数代码放在main()函数之前,则不用声明也能编译通过,怎么回事? 另外一个问题:变量需要先声明再使用,这能理解;函数也必须先声明再使用吗?如果是,那么声明语句和调用语句怎么分辨?比如——int main (){ int a; int sum (int i); //声明语句 double x; ...... int sum (int i) // 调用语句 { .....}}难道就是把前一句当声明、后一句当调用理解?对了,我用的是code::block
展开
4个回答
推荐于2017-05-19
展开全部
第一个问题,如果函数的调用语句在定义之前,则需要进行声明,告诉计算机这个程序中有这么一个函数。因为编译是从上至下进行编译的,如果函数的调用放在了这个函数定义之前(未经声明),在编译时就会报错。如果要使用的函数的定义在它使用之前,则不用进行声明(因为此时编译器已经知道这是一个函数了)(但是一般程序员都会把主函数放在程序的最上面,这样可以让程序很直观,但这样做则需要将后面定义的函数先进行声明)。
第二个问题,其中函数什么时候需要声明,什么时候不需要声明,我在上一个问题中已经讲了。区分函数的定义和其声明有一种方法。
函数的声明一般只有一句话(比如: int sum (int i);),这句话其实就是函数的定义的首句话。而函数的定义则会在其后面添加该函数的内容(既大括号里的语句。如:int sum (int i) { .....})
另外,int sum (int i) { .....}这个并不是函数的调用,而是函数的定义。函数的调用这是这样的(就用程序中的sum做例子):sum(这里填写实参);
如果还有不明白的可以提问。
第二个问题,其中函数什么时候需要声明,什么时候不需要声明,我在上一个问题中已经讲了。区分函数的定义和其声明有一种方法。
函数的声明一般只有一句话(比如: int sum (int i);),这句话其实就是函数的定义的首句话。而函数的定义则会在其后面添加该函数的内容(既大括号里的语句。如:int sum (int i) { .....})
另外,int sum (int i) { .....}这个并不是函数的调用,而是函数的定义。函数的调用这是这样的(就用程序中的sum做例子):sum(这里填写实参);
如果还有不明白的可以提问。
2013-09-02
展开全部
第一个问题:当你编写好一个程序以后,计算机要先编译以后,才能执行,编译的过程是至上而下的,如果你的函数定义是在main()函数之前,那么不用声明,就可以直接在main()函数中调用,因为计算机在编译的过程中已经知道了这个函数了,但是如果你的函数定义是在main()函数之后,且main()函数中需要调用它,则需要在调用之前声明,原因很简单,就是告诉计算机你下面要调用这个函数了,让它注意找到相应的定义部分。第二个问题:你的问题中的代码有点错误,函数声明就是整个函数头 加上一个分号,函数调用只是函数名和实参以及分号组成,你的main()函数中int sum (int i) {...}这不叫函数调用,这叫函数定义,而且是嵌套定义,这是不允许的。C语言允许函数嵌套调用,但是不允许嵌套定义。这是破坏C语言结构化程序思想的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行是从 main 函数开始,但如果在main函数前存在类对象变量的声明,则可能会先调用类的构造函数来创建类对象。
第一个问题,如果函数的调用语句在定义之前,则需要进行声明,告诉计算机这个程序中有这么一个函数。因为编译是从上至下进行编译的,如果函数的调用放在了这个函数定义之前(未经声明),在编译时就会报错。
如果要使用的函数的定义在它使用之前,则不用进行声明(因为此时编译器已经知道这是一个函数了)(但是一般程序员都会把主函数放在程序的最上面,这样可以让程序很直观,但这样做则需要将后面定义的函数先进行声明)。
第二个问题,其中函数什么时候需要声明,什么时候不需要声明,我在上一个问题中已经讲了。区分函数的定义和其声明有一种方法。
函数的声明一般只有一句话(比如: int sum (int i);),这句话其实就是函数的定义的首句话。而函数的定义则会在其后面添加该函数的内容(既大括号里的语句。如:int sum (int i) { .....})
另外,int sum (int i) { .....}这个并不是函数的调用,而是函数的定义。函数的调用这是这样的(就用程序中的sum做例子):sum(这里填写实参)。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-02
展开全部
int sum (int i); //声明语句 int sum (int i) // 调用语句 { .....} 你在main函数中定义了函数,这个应该是放到main外面使用的。 int main (){ int a; int sum (int i); //声明语句,只是让文件知道这个函数存在。 double x; ...... return 0;} int sum (int i) // 调用语句,定义函数。 { .....}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询