社区
C语言
帖子详情
c语言数组初始化未赋值则默认是任意还是0?
clleady
2009-07-12 09:12:12
c语言数组初始化未赋值则默认是任意还是0?
int s[2];
printf("%d",s[1]);
输出不是0吗?
...全文
9606
8
打赏
收藏
c语言数组初始化未赋值则默认是任意还是0?
c语言数组初始化未赋值则默认是任意还是0? int s[2]; printf("%d",s[1]); 输出不是0吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
blh
2009-07-12
打赏
举报
回复
[Quote=引用楼主 clleady 的帖子:]
c语言数组初始化未赋值则默认是任意还是0?
int s[2];
printf("%d",s[1]);
输出不是0吗?
[/Quote]
如果s是全局变量,那么s就是一个未初始化全局变量,程序加载后会被初始化为全0
如过s是局部变量,那么就是不确定的,需要自己初始化或赋值
ies_sweet
2009-07-12
打赏
举报
回复
1
[Quote=引用 6 楼 esp88 的回复:]
全局,静态变量,一般默认为0;
局部变量在栈上,取决于此处原来的数据,如果不初始化的话;
动态变量在堆上.
[/Quote]
正是如此
一般来说 全局变量、静态变量处于数据区,默认初始化为0 (如果指定初始值,则为指定的值)
而局部变量处于堆栈区,其数值是随机的,即当时内存中的值。
总体来说
不要利用编译器的这种默认原则
而是应当显示的指定
必要的初始化不是笨拙
而是规范
esp88
2009-07-12
打赏
举报
回复
全局,静态变量,一般默认为0;
局部变量在栈上,取决于此处原来的数据,如果不初始化的话;
动态变量在堆上.
Erixus
2009-07-12
打赏
举报
回复
编译的环境不一样,初始的数值应该不同。
如果要全初始化为0;
可以写成 int s[2]={0,0};
在VC下应该也可以写成 int s[2]={0};
stefor
2009-07-12
打赏
举报
回复
一般是分配的内存里的原有数据
pipisi
2009-07-12
打赏
举报
回复
如果数组是局部变量,那么是任意值
meipen
2009-07-12
打赏
举报
回复
取决于所用编译器
我知道TC下的基本不是,所以变量最好自己初始化
haierpro
2009-07-12
打赏
举报
回复
这个不一定,好像依赖于具体的编译器和系统
C语言
数组
的小问题
静态
数组
,
未
赋值
的
默认
情况下,元素值是0,非静态情况下是
任意
数值。 本代码是在
数组
未
赋值
的情况下,给
数组
中间部分元素
赋值
,printf("%s\n",str); 是当字符串访问,其结束符是‘\0’,所以当静态
数组
的时候,会什么也没显示,因为
数组
未
赋值
情况下元素
默认
是0或者是‘\0’(本质是一样的),如果是非静态
数组
,则会在输出几个乱码后结束,因为随机的
默认
值会随机出现‘\0’,导致结束 int m...
C语言
数组
初始化
为一个数字的技巧
C语言
中,当我们使用
数组
的时候,我们或许会希望
数组
一开始全部被赋予某个特殊的值,我们该怎么做呢? 1.全部
赋值
为0 int main() { int c[5]={0};//这种办法很简便,但好像只对
赋值
为 0 才有效,其它的数字都只会给下标为0的
赋值
for(int i=0;i<5;i++) printf("%d ",c[i]); return 0; } //输出结果: 0 ...
C语言
-
数组
与结构体
初始化
方法
C语言
-
数组
与结构体
初始化
方法与区别 说明 本文的测试均在VS2015的开发环境下测试。
数组
与结构体
初始化
方法 假设结构体为: struct Node { int a; int b; int c; }; 1.定义变量后,再
初始化
int array[5]; array[0] = 0; array[1] = 1; array[2] = 2; arr...
c语言
输出
数组
重复元素,
C语言
数组
的所有元素
初始化
成相同的值
这个问题一直困扰了我很久,我向来都用for来控制置-1;因为我不会用memset(つ﹏⊂)我是个蒟蒻。今天终于学会了一点皮毛,赶紧记录一下方法一:简单粗暴,快捷有效。for循环一点点的置1,这个方法一直有效,没有限制条件,除非你不知道大小。方法二:建立
数组
的时候同时完成
初始化
,如果是静态创建
数组
那么只能将
数组
初始化
为0;] = {};如果是动态创建
数组
的化就可以用stdlib里的calloc进行内...
【嵌入式】
C语言
高级编程-
数组
和结构体
初始化
(02)
00. 目录 文章目录00. 目录01.
初始化
概述02. 指定
初始化
数组
元素03. 指定
初始化
结构体成员变量04. Linux内核中应用05.
初始化
总结06. 附录 01.
初始化
概述 在标准 C 中,当我们定义并
初始化
一个
数组
时,常用方法如下: int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; 按照这种固定的顺序,我们可以依次给 a[0] 和 a[8]
赋值
。因为没有对 a[9]
赋值
,所以编译器会将 a[9]
默认
设置为0。当
数组
长度比较小时,使用这种方式
初始化
比较
C语言
70,009
社区成员
243,257
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章