社区
C语言
帖子详情
c语言数组初始化未赋值则默认是任意还是0?
clleady
2009-07-12 09:12:12
c语言数组初始化未赋值则默认是任意还是0?
int s[2];
printf("%d",s[1]);
输出不是0吗?
...全文
8489
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语言
不定长
数组
及
初始化
方法
C语言
不支持不定长
数组
,要么malloc,要么在动态的指定它的长度动态
数组
不能
初始化
,可使用memset1.int* p = (int*)malloc(num);2.int num = 5;arr[num];若使用arr[],则需要在后面对齐进行
初始化
,来指定长度,否则编译可以通过,但是
默认
只有一个单元,超过一个单元的长度,在后面程序的运行中有可能会被冲掉int arr[] = {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语言
的
未
初始化
的
数组
的值为什么是随机的
突然想起来前几天同学问我为什么没有
初始化
的
数组
的值是随机的,发现这个困惑自己也是存在的,所以自己总结的心得. 首先,并不是所有
未
初始化
的
数组
的值都是随机的.对于没有
初始化
的
数组
,分两种情况: (1)全局
数组
,也就是定义在main函数外面的
数组
,元素的
默认
值是全部为0的 (2)局部
数组
,定义在函数内部的
数组
,其值
默认
是随机的. #include <stdio.h> #define L...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章