C语言中变量的初始化怎么理解?
inta=3;//这里就是初始化。如果是inta;a=3;//这样第一句已经有了一个随机初始值了,那后面a=3就不叫做初始化了,叫做赋值语句。这样理解对不对?还有就是如果...
int a=3;//这里就是初始化。
如果是
int a;a=3;//这样第一句已经有了一个随机初始值了,那后面a=3就不叫做初始化了,叫做赋值语句。
这样理解对不对?
还有就是如果只是int a;编译运行的时候会不会分配内存? 展开
如果是
int a;a=3;//这样第一句已经有了一个随机初始值了,那后面a=3就不叫做初始化了,叫做赋值语句。
这样理解对不对?
还有就是如果只是int a;编译运行的时候会不会分配内存? 展开
6个回答
展开全部
C语言的变量初始化,就是在定义变量的时候,赋予一个初始值。
形式为
type var_name = init_value;
其中init_value就是初始化值了。
类似于
type var_name;
var_name = init_value;
不过,基于编译器的实现,一般初始化值的方式要比先定义后赋值更高效。另外,有些初始化是必须的。比如常量的定义,必须在定义的时候赋予初始化值。
形式为
type var_name = init_value;
其中init_value就是初始化值了。
类似于
type var_name;
var_name = init_value;
不过,基于编译器的实现,一般初始化值的方式要比先定义后赋值更高效。另外,有些初始化是必须的。比如常量的定义,必须在定义的时候赋予初始化值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样理解其实也是可以的
但那只是个临时空间,
如果编译运行会为其分配内存空间,只是你的a没有值,所以系统会给它一个随机值
但那只是个临时空间,
如果编译运行会为其分配内存空间,只是你的a没有值,所以系统会给它一个随机值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C的局部变量一般是在栈上进行分配的。
栈使用的是RAM,掉电内容丢失,上电内容随机。
这里的随机,一般指其不能确定其内容一定是什么,而不是说其内容完全没有规律,与数学上的随机数没有什么关系。
举个例子,一个字节的RAM,8位有256种可能。数学上讲随机数,那么这个字节上电后应该是256种可能性中某一个。但计算机上不是这样,其上电后的内容一般来说就是0,但你不能保证它一定就是零,有很小的可能它的内容不是0,那么是多少呢?不知道!在程序处理上,你就要认为它的内容是随机的。
回到你的问题,你没有初始化,得到了一个确定的运行结果,为什么?两个可能,这个结果内容就是随机的,只不过结果恰好是这个值而已,但你不能保证下次运行结果,那么你就需要把它当随机值对待。另一个可能,你在不经意间执行了初始化,因为C编译器本身会链接一些初始化程序,这个牵涉到另一个话题,系统是怎么样进行初始化的。
结论,变量应该明确的进行初始化。如果系统不能确定你的变量初值是一个确定的值,那么就需要你自己来做初始化。
栈使用的是RAM,掉电内容丢失,上电内容随机。
这里的随机,一般指其不能确定其内容一定是什么,而不是说其内容完全没有规律,与数学上的随机数没有什么关系。
举个例子,一个字节的RAM,8位有256种可能。数学上讲随机数,那么这个字节上电后应该是256种可能性中某一个。但计算机上不是这样,其上电后的内容一般来说就是0,但你不能保证它一定就是零,有很小的可能它的内容不是0,那么是多少呢?不知道!在程序处理上,你就要认为它的内容是随机的。
回到你的问题,你没有初始化,得到了一个确定的运行结果,为什么?两个可能,这个结果内容就是随机的,只不过结果恰好是这个值而已,但你不能保证下次运行结果,那么你就需要把它当随机值对待。另一个可能,你在不经意间执行了初始化,因为C编译器本身会链接一些初始化程序,这个牵涉到另一个话题,系统是怎么样进行初始化的。
结论,变量应该明确的进行初始化。如果系统不能确定你的变量初值是一个确定的值,那么就需要你自己来做初始化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给予变量一个初始的值,以便下次操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询