搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 数组的初值不是可以比定义时的个数少的么
标题:
数组的初值不是可以比定义时的个数少的么
只看楼主
natto
等 级:
新手上路
帖 子:27
专家分:5
注 册:2016-4-10
结帖率:
70%
楼主
已结贴
√
问题点数:1 回复次数:4
数组的初值不是可以比定义时的个数少的么
程序代码:
void
main() {
int
s[
5
]={
23
}; printf(
"
%d \n
"
,*s); }
不是说赋的初值个数少于数组定义时的个数时,将自动在后面补初值0么,那怎么这段话我运行以后,出来就是23,而不是23 0 0 0 0
2016-04-13 17:57
qq1023569223
来 自:湖南科技大学
等 级:
贵宾
威 望:
26
帖 子:2753
专家分:13404
注 册:2010-12-22
第
2
楼
得分:0
int s[5]={23}仅对s[0]赋值,后面的补不补看编译器,有的会有的不会。*s只会输出s[0],不会输出全部,不要与字符串混淆。
唯实惟新 至诚致志
2016-04-13 18:24
落翼天玑乱
等 级:
新手上路
帖 子:20
专家分:3
注 册:2016-3-7
第
3
楼
得分:1
是自动补充为0没错,但是你输出的方式不对,printf("%d \n",*s);这种输出方法等同于printf("%d \n",s[0]);
要想把一个数组的所有值都输出的话好像必须要遍历数组,你试试下面的代码!
#include <stdio.h>
int main()
{
int a[5]={23},t;
for(t=0;t<5;t++)
{
printf("a[%d]=%d;\n",t,a[t]);
}
system("pause");
return 0;
}
2016-04-13 18:52
lin5161678
等 级:
贵宾
威 望:
45
帖 子:1136
专家分:3729
注 册:2011-12-3
第
4
楼
得分:0
以下是引用
qq1023569223
在2016-4-13 18:24:48的发言:
int s[5]={23}仅对s[0]赋值,后面的补不补看编译器,有的会有的不会。*s只会输出s[0],不会输出全部,不要与字符串混淆。
不不不 你弄错了
不管什么编译器 后面都会补充0
不补充0的编译器是不合格的
https://zh.
2016-04-13 21:22
wanglianyi1
等 级:
贵宾
威 望:
14
帖 子:647
专家分:2067
注 册:2015-6-18
第
5
楼
得分:0
输出的格式不对,当然只输入1个了
收到的鲜花
natto
于
2016-04-15 12:13
送鲜花
1朵 附言:我很赞同
2016-04-14 13:07
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-463604-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.429314 second(s), 11 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved