永发信息网

c语言静态存储数组的赋值问题。

答案:5  悬赏:70  手机版
解决时间 2021-11-07 10:39
c语言静态存储数组的赋值问题。
最佳答案
使用static定义静态数组,这个数组就会在程序的整个生命周期里存在,并且这个数组会分配并放在程序的.bss段中,这个段中的所有数据都是会被自动初始化为0的,如果是声明在函数中,那么调用这个函数每次使用的数组都是同一个数组,如果不是在函数中定义,那么这个数组就仅限于在此文件中可用。

而没有static声明的数组,这个数组会在调用这个函数所在的栈帧中分配,也就是在栈上分配,这个数组就不会被初始化,数组中的值是随机的,如果在函数中定义,那么调用这个函数时每次使用的数组一般是不同的。

至于要不要用static来声明,一方面是看你是否需要这个数组被长久使用,另一方面就是看是否需要让它自动初始化为0,还有就是在其他文件中是否需要使用这个数组。
全部回答
”只有静态存储数组才能初始化“这句话是哪里的?
静态数组也是可以初始化
动态数组与静态数组都可以初始化,要养成加static的好习惯,通常全局变量不确定的都要加static,这样比较保险,这样做是为了满足程序的借口最小化原则,是变量的名字只是在翻译单元内可见。改变了变量的链接属性,即翻译单元外的其他程序不可以直接使用该变量。

但是不加static也是正确的,只是加上比较保险一点
静态数组和动态数组都可以初始化,只不过动态数组在定义时如果没有初始化,数组元素的值是随机值,而静态数组在定义时如果未初始化,编译器会自动把数组元素置0。
比如int a[10] 数组元素的值不确定是随机值,可能是-8997777666之类。
static int a[10] 数组所有元素的值为0。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样用vb的if语句写一个判断字母是否为大小写
黄金投资中,亚洲盘,欧洲盘和美盘开盘时间谁
榨油坊免费榨油只要榨油剩下的渣,那么榨油坊
凸用五笔怎么打
“怕得鱼惊不应人”的“惊”是什么意思?
深圳公交337经过的所有站点
现房只有黄本房产证,想过户别人怎么办
昆明法国梧桐树的来历
举例说明道德只是个简单的是与非的问题,实践
顺丰快递4kg省内多少钱?
跨度4米宽6米载重20吨的平板桥桥面钢筋用多大
美国电影狐狸猎鹰
女孩子喜欢被男友抚摸吗
从上高自己开车去南昌八一广场要多久?
凉栀凉柠是情侣网名么
推荐资讯
求各种眼睛名字及图片。感觉自己眼像桃花眼,
这是哪个成语?
山田村地址有知道的么?有点事想过去!
某种商品现价120元,比原价降低1/5,原价多
荒岛求生椰子可以重复生长吗
家用航拍800万像素够吗
32GB(84 x 8GB)是什么意思
蓄电池内部开路是怎么一回事
贡山县交警大队违法办地址有知道的么?有点事
厄祭战与72架高达具体是怎样的设定?都有哪些
高速公路波形防撞护栏一米造价是多少钱
材料一,材料二与材料三之间有何联系?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?