永发信息网

在c语言中给变量赋初值有什么作用

答案:3  悬赏:0  手机版
解决时间 2021-02-11 14:14
在c语言中给变量赋初值有什么作用
最佳答案
变量的存储类型是指变量在内存中的存储方式,分为静态存储和动态存储,表示了变量的生存期。

变量分类特性表存储方式存储类型说明符何处定义生存期作用域赋值前的值可赋初值类型动态存储自动变量 auto 寄存器变量 register 函数或复合语句内被调用时在定义它的函数或复合语句内不定基本类型int或char外部变量extern函数之外整个源程序整个源程序静态局部变量static 函数或复合语句内静态全局变量static 函数之外整个源程序在定义它的函数或复合语句内在定义它的源文件内0任何类型
全部回答
如果变量不赋初始值,则它的值是不确定的,容易造成结果出错
语法上的初始化是指对象定义时,对应的分配空间之后对于值的操作。c语言中,静态和全局变量默认置0,有初始化列表的复制初始化列表的值到空间(如有不足,剩余部分置0),局部自动变量可以不初始化(调试器参与时可能被隐式地初始化为其它的值("debug magic number"),例如默认情况下microsoft c/c++ debugger会把栈中未初始化的字节置为0xcc)。 赋初值一般而言是指逻辑意义上的初始化。在c语言中,由于初始化的语法是“=”后加初值,所以“赋初值”基本上就是指语法上的初始化。不过随着语言的发展,“赋初值”的意义发生了扩大。对有构造语义但又允许不初始化而不产生编译错误的程序设计语言而言,两者有些微妙的差别。例如c++的构造函数中,用若干个成员名和括号括起来的初始化值构成的初始化列表是语法上的初始化(也可能是逻辑意义上的初始化,如果没有被构造函数体内的值覆盖),而构造函数体中对成员的赋值语句是逻辑上的初始化但不是语法上的初始化。 冰的悸动 错误: 1.“程序开始时进行初始化”的说法仅仅适用于静态或全局变量,而不适于局部自动变量。局部自动变量在函数调用时才能被初始化。 2.“但是根据编译器的不同有些编译器会自动赋初值0或其他”——这在iso/iec c语言标准中不是由实现定义的行为,如果一个编译器符合标准,那么行为就是明确的,即视此初始化的对象是否为全局对象来判断隐式初始化置0还是不进行初始化——从下面的函数定义来看这里应该var2是全局变量,会被置0。非标准编译器则另当别论(但是我还没见过会在这点上没事找茬的)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
蔡家坝村我想知道这个在什么地方
学而思培优好吗
谁能把上面的草字翻译一下
描写柳树100字
揭开维新变法序幕的是AA. 公车上书B. 成立强
常州大学的电气工程及自动化在哪个校区
泰坤房地产我想知道这个在什么地方
即使遇到再大磨难都让我们一起坦然面对,是什
外包装是xiaotihu 大胆爱是什么东西
尝绿地址在哪,我要去那里办事
second-guessing是什么意思
雪铁龙世嘉手动凉车离合器有异响什么原因
铜井成人教育中心校地址在哪,我要去那里办事
盘发需要哪些东西
【午后阳光的优美句子】关于描写午后阳光的好
推荐资讯
房子按揭以后.贷款逾期5次什么时候还能办信用
图是“城市形成与发展区位示意图”,图中a、b
一综合办公大楼,建筑屋面一部分为坡屋面,其
高通骁龙四核和英特尔i3比较,哪个好?
公益庄村地址在什么地方,想过去办事
汤阳村地址有知道的么?有点事想过去
远行单车我想知道这个在什么地方
求翻译,谢谢!
醉枫染墨什么意思
有外国朋友周六需从深圳机场到香港口岸当天出
亚洲、欧洲A巴拿马运河亚洲、非洲B白令海峡亚
东京旅游最佳时间是什么季节
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?