社区
C语言
帖子详情
C中,全局变量不赋初值会怎样
d383137359
2009-12-01 09:52:35
C中,全局变量不赋初值会怎样?
...全文
4050
44
打赏
收藏
C中,全局变量不赋初值会怎样
C中,全局变量不赋初值会怎样?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
44 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ArvinCSDN
2011-08-04
打赏
举报
回复
会被初始化为0
sk_sakula
2011-05-13
打赏
举报
回复
全局变量的初值是0,VC6.0
d383137359
2010-01-04
打赏
举报
回复
同感
smallbear_2008
2010-01-02
打赏
举报
回复
哈哈,没想到今天我也想问这个问题!
why0727
2009-12-02
打赏
举报
回复
是0啊
zuojunyuan
2009-12-02
打赏
举报
回复
我用vs2008编译的话,会报错。
kostion
2009-12-02
打赏
举报
回复
变量初始化为0, 指针为null
alexhilton
2009-12-02
打赏
举报
回复
C标准是要求全局变量要被初始化为零值(0, NULL)但是这要看具体的编译器.
cir2633
2009-12-02
打赏
举报
回复
随机,
但是,如果这个全局变量是static的话,编译器应该把初始为0(int是这样的)
magicpang
2009-12-02
打赏
举报
回复
看系统吧,有的会初始化成为0,有的系统可能就不会去做这个事情
不要依赖这个。自己初始化,或者赋予一个初值
amoroso1860
2009-12-02
打赏
举报
回复
2楼正解。
全局变量不赋值的话, 是被出化成零的, 全局变量在静态数据段里, 这个数据段是被设置成零的。
如果是局部变量的话,它的值是随机值。
xiaopoy
2009-12-02
打赏
举报
回复
[Quote=引用 21 楼 pengzhixi 的回复:]
引用 14 楼 datheng 的回复:
引用 11 楼 pengzhixi 的回复:
引用 10 楼 datheng 的回复:
引用 2 楼 skysoshy 的回复:
全局变量不赋值的话, 是被出化成零的, 全局变量在静态数据段里, 这个数据段是被设置成零的。
正解,全局变量是按类型初始化的.int 是0, float 是 0.0, 指针是指向0,etc
局部变量不赋值的话,他的值是随机的.
别把C++和C的编译器混在一起了。
好像C和C++在处理这个问题上是一样的吧? 最少现在的C编译器是这样处理的.
没有的,C标准规定 全局变量不初始化就是随机值。如果你使用的是C++编译器,那执行的肯定是C++标准嘛
[/Quote]
是 可执行文件的标准规定的。
按自己所接触的各种各样可执行文件的标准,well,按自己接触过的 处理器, MIPS/intel/power PC/ alpha/ARM,全都是初始化c里的 全局变量为0
yllzhq
2009-12-01
打赏
举报
回复
随机分配
lovesi3344
2009-12-01
打赏
举报
回复
全局变量和静态变量未初始化都被置为0
他们都是存储在静态存储区
就像数组未初始化的元素被置为0
但是数组存储在堆栈存储区
lyboy_caidou
2009-12-01
打赏
举报
回复
同意 0;
珍惜生命远离CPP
2009-12-01
打赏
举报
回复
标准规定 是 0
FollowYourHeart
2009-12-01
打赏
举报
回复
[Quote=引用 11 楼 pengzhixi 的回复:]
引用 10 楼 datheng 的回复:
引用 2 楼 skysoshy 的回复:
全局变量不赋值的话, 是被出化成零的, 全局变量在静态数据段里, 这个数据段是被设置成零的。
正解,全局变量是按类型初始化的.int 是0, float 是 0.0, 指针是指向0,etc
局部变量不赋值的话,他的值是随机的.
别把C++和C的编译器混在一起了。
[/Quote]
好像C和C++在处理这个问题上是一样的吧? 最少现在的C编译器是这样处理的.
lvchun012
2009-12-01
打赏
举报
回复
就看你在什么环境下运行的,跟编译器有关系,但总的来说,是个很危险的做法
Initiala
2009-12-01
打赏
举报
回复
C++没学过,但是在C的编译器里会被初始化为零。(不管是值类型还是字符型)
qq25304239
2009-12-01
打赏
举报
回复
反正我在vc++中运行的时候都是默认0
加载更多回复(24)
c语言
中
全局变量
若
不赋
初值
,C语言程序设计教程第四章练习题解析(1)
本文详细介绍了C语言
中
的函数调用、变量作用域和存储类别。包括函数定义与调用的规则,局部变量与
全局变量
的区别,以及静态变量的特性。特别讨论了函数参数的传递方式,以及在函数调用
中
如何处理同名变量的问题。同时,文章还涵盖了C语言
中
的输入输出函数printf()和scanf()的使用方法及其限制。通过对这些基础知识的讲解,帮助读者深入理解C语言的程序设计。
数组默认赋值
博客介绍了C语言
中
数组
全局变量
和局部变量的赋值规则。
全局变量
赋
初值
时,系统默认赋值为‘\0’(ASCII码为0),int型数组赋值为0,
不赋
初值
则数组默认赋值0;局部变量赋
初值
情况与
全局变量
相同,
不赋
初值
时系统随机分配。
关键字 --- extern
本文介绍了C++
中
定义变量与声明变量的区别,声明只告知编译器变量名字和类型,不开辟空间,不能赋
初值
;定义则
会
开辟空间,可赋
初值
。还阐述了关键字extern的用法,包括声明函数、
全局变量
,以及extern \C\的使用场景,强调声明可多次,定义只能一次。
【C语言】指针变量未初始化
文章讨论了C语言
中
全局变量
和局部变量未赋
初值
时的不同行为:
全局变量
默认为0,局部变量可能保持上一状态的随机值。特别强调了指针变量的处理方式,即使不初始化,它们也
会
指向内存地址,需注意内存安全。
DSP运行main之前,不
会
将
全局变量
置为0
本文探讨了在使用CCS编译器时遇到的问题:未赋
初值
的
全局变量
被赋予随机数而非零值,以及部分初始化的全局结构体变量其余成员不自动置零的情况。这些现象似乎与C语言标准不符。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章