C语言中总是从main函数开始执行,那执行好main函数后,是按照从上到下的顺序执行吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中总是从main函数开始执行,那执行好main函数后,是按照从上到下的顺序执行吗相关的知识,希望对你有一定的参考价值。

进入程序后,就开始找main函数,可能是int main也可能是void main等。
然后可能遇到判断、循环、分支结构,然后按各自的语法分别执行,还可能遇到被调函数,到了那里就再去执行被调函数,执行完被调函数就再回来。
直到main函数全部执行完毕,直到最后一行结束,然后程序退出,运行界面出现perss any key to continue。
顺序就是从上到下。遇到一些结构遵循结构的语法进行,但是整体顺序就是由上到下。
参考技术A C语言并不是按照你说的那样,比如
……
void a(……)
……
void b(……)
……
void c(……)
……
void main()

……
b();
……
c();
……


假设以上是一个C语言程序,函数开始从main 函数执行,而在执行main函数内的操作时,当执行到其他函数如b c时,转去执行相应的函数结构,C语言有几种不同的结构,循环 分支,顺序结构,程序怎样执行,是要看程序的具体结构的,
个人认为,是一直站在main函数中的,只不过main函数调用其他函数式,才转去执行相应的函数,上边的假设中,如果main没调用a函数,那么a函数就不执行的追问

请问怎样才知道调不调用其他函数呢?

追答

那就看main函数里有没有调用该函数啦,认真看看书吧,多练习就好啦

参考技术B 应该说,main函数是入口,当main函数完结时,程序也就完结了。
其他的函数顺序没太大关系,但你在用函数前,你必须要先声明(就是让系统知道有这个函数)。
打个比方:
fun(); //声明函数fun(),告诉系统有这个函数存在
int main()
....运行内容
fun(); //这里出现了fun()这个函数,此时就会进入fun()函数内进行运算
.....运行内容
return 0;//main函数结束,程序也结束

fun() //定义函数fun(),告诉系统fun()函数的操作。
fun函数的内容

因此,只跟在main函数里调用顺序有关,跟定义的顺序无关,如果main函数里面不调用这个函数fun(),就算你定义了这个函数,也不会执行。

希望楼主能看明白,共同进步哈~
参考技术C 一个C程序只允许有且一定要有一个主函数,但可以有多个子函数或没有,执行的时候当然是以主函数为基准执行,执行过程再调用子函数。这过程当然要看主函数先调用哪个子函数,也就是看子函数在主函数中的被调用顺序来决定其执行顺序。 参考技术D 如果把程序比作一本书,'{}'体现了程序的层次结构,"" 前的语句就像书的每一章的名称,{}里面的的内容同理是这一章所要说明的

日常小问题

   1.一个Java类中只能有一个共有类吗?

   是

java程序是从一个public类的main函数开始执行的,(其实是main线程),就像C程序是从main()函数开始执行一样.只能有一个public类是为了给类装载器提供方便. 一个public类只能定义在以它的类名为文件名的文件中。 
每个编译单元(文件)都只有一个public 类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public类,编译器就会报错.并且public类的名称必须与文件名相同(严格区分大小写)。 当然一个编译单元内也可以没有public类。
在一个源文件.JAVA文件中可以有很多类,只有一个PUBLIC类其他的都不能是.
在PUBLIC类中找程序的入口 main函数 你想想如果很多PUBLIC类,那程序从何运行呢?

2. public static void main()中void改为int.
可以,
但要有返回值“return 0"

3.为什么Java规定程序入口为static?

静态犯法无需实例化,就可以调用,如果不是静态,main函数要有对象调用,
main是程序执行入口,实例化再调用main是不能实现的。

4.同名变量

Java变量遵循”同名变量屏蔽原则“-主要是看变量的作用域,函数调用同一域的变量。

5为什么double类型的数值计算不是”数学上的精确数“?

java中十进制与二进制转化时存在问题,double类型的数值占   用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低
位上一定会与实际数据存在误差,简单来说就是我们给出的数值,在   大多数情况下需要比64bit更多的位数才能准确表示出来(甚至
是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果

6

 

当"X+Y="在前时,默认的把int型X,Y转化为String型,"X+Y="使编译器认为X,Y是String型的了,System.out.println()本身的参数默认为String型,

遇到这种情况默认了转化,产生了如此结果,而第二个就是简单的输出,没有让计算器产生“误解”。

以上是关于C语言中总是从main函数开始执行,那执行好main函数后,是按照从上到下的顺序执行吗的主要内容,如果未能解决你的问题,请参考以下文章

C++语言怎么在main函数执行之前执行一段代码

一个C语言程序的执行是从( )。 (A)本程序的main()函数开始,到main()函数

单片机里的程序是从main函数开始执行的吗?请高手进。

C语言程序是如何执行的

c语言执行程序的开始执行点是

子进程是否从 Fork 函数 后 开始执行,执行函数后的代码。Fork函数之前的不执行?