| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1619 人关注过本帖
标题:数组的初值不是可以比定义时的个数少的么
只看楼主 加入收藏
natto
Rank: 1
等 级:新手上路
帖 子: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
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
int s[5]={23}仅对s[0]赋值,后面的补不补看编译器,有的会有的不会。*s只会输出s[0],不会输出全部,不要与字符串混淆。

   唯实惟新 至诚致志
2016-04-13 18:24
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
收藏
得分: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
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分: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
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
输出的格式不对,当然只输入1个了
收到的鲜花
  • natto2016-04-15 12:13 送鲜花  1朵   附言:我很赞同
2016-04-14 13:07
快速回复:数组的初值不是可以比定义时的个数少的么
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020178 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved