众所周知,C中规定,只有再定义全局变量&静态局部变量是才能初始化,到底为什么那??仔细看过谭浩强的C程序设计后,终于再133页发现答案。
解释:全局变量&静态局部变量是存储在静态存储区中的,静态存储区的数据是在编译区中进行的。其他的变量是存储在在动态存储区中的,而动态存储器中的数组不能初始化因为,如果数组很大,那么每次函数调用都会有一次赋值操作,占用时间过多。为了提高效率,C才作出规定只有再定义全局变量&静态局部变量是才能初始化的规定。
本文解释了C语言中为何仅允许在定义全局变量和静态局部变量时进行初始化。全局变量和静态局部变量存储于静态存储区,其初始化发生在编译阶段。而动态存储区中的变量若初始化将导致函数调用时的额外赋值操作,影响效率。
众所周知,C中规定,只有再定义全局变量&静态局部变量是才能初始化,到底为什么那??仔细看过谭浩强的C程序设计后,终于再133页发现答案。
解释:全局变量&静态局部变量是存储在静态存储区中的,静态存储区的数据是在编译区中进行的。其他的变量是存储在在动态存储区中的,而动态存储器中的数组不能初始化因为,如果数组很大,那么每次函数调用都会有一次赋值操作,占用时间过多。为了提高效率,C才作出规定只有再定义全局变量&静态局部变量是才能初始化的规定。
952

被折叠的 条评论
为什么被折叠?