C++中函数中的局部变量到底是不是执行到变量定义处才分配内存吗,为什么我用VS调试有疑问

我一直认为C++代码在函数中是顺序执行的,直道今天调试的时候发现一个问题,如图:程序断点调试还没有执行第9行,局部变量中已经有b这个变量了,此时第十行代码还没有执行啊,怎... 我一直认为C++代码在函数中是顺序执行的,直道今天调试的时候发现一个问题,如图:

程序断点调试还没有执行第9行,局部变量中已经有b这个变量了,此时第十行代码还没有执行啊,怎么会有b的存在呢?实事上刚一进入main函数,b变量就存在了,难道说我以前认为的都是错的?在C语言中,局部变量都是函数刚一进入就全部分配了内存而不论变量实际定义的代码在第几行?
展开
 我来答
hai6606_cn
2015-08-02 · TA获得超过452个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:174万
展开全部
当然是在调用到这里之前就已经分配好了,更准确的说在这个函数执行开始的时候就已经分配好了。因为局部变量是存在栈中的,栈由程序自己分配释放,栈内存在分配前必须知道它的大小
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式