为什么大数组要定义在main函数外
今日份踩坑:定义打数组时定义在了main函数内部,结果编译是通过的,但是却不能进行输入操作进行本地样例测试检查后发现是大数组问题!定义在main函数外就是定义全局变量。因为在所有子程序(包括main函数)中开设的变量都会在开设在栈中,在栈中的变量会消耗固定尺寸的堆栈容量,同时增加了访问开销(需要根据堆栈指针计算变量位置),对于并不经常调整的堆栈尺寸(在编译选项中)来说,比较不容易掌握调节尺度。..
·
今日份踩坑:
定义打数组时定义在了main函数内部,结果编译是通过的,但是却不能进行输入操作,进行本地样例测试检查后,发现是大数组问题!
定义在main函数外就是定义全局变量。因为在所有子程序(包括main函数)中开设的变量都会在开设在栈中,在栈中的变量会消耗固定尺寸的堆栈容量,同时增加了访问开销(需要根据堆栈指针计算变量位置),对于并不经常调整的堆栈尺寸(在编译选项中)来说,比较不容易掌握调节尺度。另外,堆栈耗用过多会导致程序运行时堆栈满而溢出,影响程序正常运行,这几行无法在编程阶段估计,导致程序运行的不稳定可能。
更多推荐
已为社区贡献1条内容
所有评论(0)