传智的老师讲C语言函数的栈帧调用过程讲错了吧?大家进来看看

Python015

传智的老师讲C语言函数的栈帧调用过程讲错了吧?大家进来看看,第1张

你的老师是没说错的。栈的规则是先进后出,后进先出。进入栈不代表会运行,它只是进入了1个运行的队列。按照你的方法那这个栈基本没意义了,因为你是进栈就出栈了,直接就运行了。并没有一个队列顺序。

1、printf(n2)它最先进栈,所以它的排在队列的最后面,它最后运行。这符合程序的运行顺序

2、printf(n1)它第二进栈,所以它是倒数第二个运行的。以此类推下去。

3、如果按照你的说法,main最先进栈,你会发现它是在栈的底部,它无法最先运行。因为它上面还有你说的printf1,2,3,4,5等等。先出栈也是它们,意味着先运行也是它们。这和事实不符的。因为运行一个程序是从主函数开始运行的。

4、根据栈的规定,这里main应该是最后进栈的才对,因为它最后进栈,所以他最先出栈,也是它最先运行。

1、强大灵活,辉煌40多年的经典语言

2、接近底层,更深层次的认识编程,C生万物,编程之本!

3、速度快,效率高,而且可对接多种语言

之前从传智内部给出过资料,发现C语言从就业角度上来讲:岗位稀缺,入职快,薪资高

你有C语言的基础了么?如果没有,先学《 C程序设计语言(第2版) 》后可以开始学习C++,一开始没必要钻很深的大部头书,《 Essential C++中文版 》非常适合初学,一个礼拜就可以看完,看了它可以快速对C++的全貌有个了解,虽然不会马上熟练掌握C...