c语言问题——未初始化int变量的初值
书上写,初始值不定,但是我运行几次,重启c++6.0再运行,重新定义一个int变量再运行,值都是-858993460,怎么回事...
书上写,初始值不定,但是我运行几次,重启c++6.0再运行,重新定义一个int变量再运行,值都是-858993460,怎么回事
展开
8个回答
展开全部
int变量未初始化的默认初值,和变量的类型有关。
1 局部变量,在未初始化情况下,初值为随机值。C规范对该初值并没有做规定,具体实现由编译器决定。如VC/VS等编译器,会将初始值值为0xCCCCCCCC, 而GCC等编译器则是不可预知的随机值。
2 静态局部变量,即带static修饰的局部变量。
全局变量和静态全局变量,即定义在函数外,不属于任何一个函数的变量。
这几种默认初值为0.
1 局部变量,在未初始化情况下,初值为随机值。C规范对该初值并没有做规定,具体实现由编译器决定。如VC/VS等编译器,会将初始值值为0xCCCCCCCC, 而GCC等编译器则是不可预知的随机值。
2 静态局部变量,即带static修饰的局部变量。
全局变量和静态全局变量,即定义在函数外,不属于任何一个函数的变量。
这几种默认初值为0.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、没有初始化,内存上的值是任意的,但只要声明了变量,变量的地址就是固定的了,因此里面的值,无论重启编译器多少次,结果都是一样的。
2、如果在下面再定义一个int类型的变量,再打印看看,它的值也许就跟你上面的值不同。不初始化就参与运算是很危险的,有的编译器是不允许这样操作的,因此变量最好要初始化。
2、如果在下面再定义一个int类型的变量,再打印看看,它的值也许就跟你上面的值不同。不初始化就参与运算是很危险的,有的编译器是不允许这样操作的,因此变量最好要初始化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有初始化,内存上的值是任意的,但只要你声明了变量,变量的地址就是固定的了,因此里面的值,无论你重启编译器多少次,结果都是一样的。如果你在下面再定义一个int类型的变量,再打印看看,它的值也许就跟你上面的值不同
不初始化就参与运算是很危险的,有的编译器是不允许这样操作的,因此变量最好要初始化
不初始化就参与运算是很危险的,有的编译器是不允许这样操作的,因此变量最好要初始化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在debug配置中,VC++自动把未初始化的空间填充了0xCC,int型的就是0xCCCCCCCC,按有符号整数打印,就是-858993460了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询