初学数组,以华科的《c 语言与程序设计》为教材,参考了《一站式学习c编程》,后者数组一章有串代码如下

int main(void)

{

int i, histogram[10] = {0};

gen_random(10);

for (i = 0; i < N; i++)

histogram[a[i]]++;

...

}

书上指出“首先把histogram的所有元素初始化为0“, 在两本书上我都未找到对应明确的语法描述

我们知道,不进行显式初始化的情况下,全局变量以及静态变量的初始均为0,局部变量(自动变量)随机

int main(void)

{

a[5] = { 1, 2 };

return 0;

}

上面定义的数组a[0] = 1, a[1] = 2一定,之后未知,我用gcc编译后gdb跟踪

之后初始为0,是个忧伤的故事

还是来实验下int a[5]; 与 int a[5] = {0};吧

#includeint main(void)

{

int a[5];

return 0;

}

显然随机...

int main(void)

{

int a[5] = {0};

return 0;

}

貌似把全部数组元素都初始化成0了,存疑,是否因为初始化a[0]后其余数组元素同时默认初始为0? 我们再来试试这条语法

int main(void)

{

int a[5] = {1};

return 0;

}

说明初始化数组中一个数后其余元素同时初始化为0(至少在我用的gcc里),而并非全部初始化。

那么, a[5] = {0}将数组中元素全初始化为0,这句话是错误的,没有这条语法;“首先把histogram的所有元素初始化为0“,这句话是不严谨的。

实验获得,准确性未知。

———————  ——————  —————  ———————  —————  —————  —————  ————

经过yulinlang的提醒,我翻阅了K&R数组初始化(4.9)节,早已说过

——如果初始化表达式的个数比数组元素少,则对外部变量、静态变量和自动变量来说,没有初始化的表达式的元素将被初始化为0。

c语言定义数组变量初始化为0,c语言数组初始化——int a[N] = {0};相关推荐

  1. java定义数组变量初始化为0_java中怎么数组初始化?

    展开全部 //数组定义最方便的就是用for循环来做定义,数组下标是从e69da5e6ba9062616964757a686964616f313333656462620开始,到11的话就是12个数字.要 ...

  2. 字母c语言定义为什么变量,C语言为什么要规定对所用到的变量要“先定义,后使用”...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int a=10; 以上一句话对变量a进行了声明,定义以及初始化 extern int a; 以上一句话仅仅对变量a进行了声明,将a的链接属性设置为ext ...

  3. c语言如何初始化程序,c语言二维数组如何初始化为0 - 全文

    c语言二维数组如何初始化 1 有两种方法 (1)在定义时可以直接赋值来初始化 (2)在定义后可以为其元素一个个来赋值 2 示例 123456789101112131415161718192021222 ...

  4. c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量

    变量的作用域 我们知道,变量根据其作用域有全局变量和局部变量之分.全局变量作用域是整个文件,并且可以使用关键字 extern 达到跨文件调用的目的.但是局部变量值作用于它当前所在的块(即该变量所处最内 ...

  5. c51语言定义位变量,C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 。...

    C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 . 更多相关问题 铸造全冠颈部肩台通常为A.0.2-0.4mmB.0.03mmC.0.3mmD.0.5-0.8mmE.1.0mm ...

  6. C语言定义外部变量或函数使得另一个C文件可以调用

    比如要在b.c想要调用a.c里的变量aa或函数aaa,则需要将a.c里的变量aa和函数aaa设置为外部变量和函数 方法: 在a.h中声明aa变量和aaa函数: extern int aa;extern ...

  7. c语言定义eeprom变量,单片机EEPROM的页写入

    在向 EEPROM 连续写入多个字节的数据时,如果每写一个字节都要等待几 ms 的话,整体上的写入效率就太低了.因此 EEPROM 的厂商就想了一个办法,把 EEPROM 分页管理.24C01.24C ...

  8. 在c语言中 使用变量的要求,关于C语言中变量的探讨

    摘 要: 在所有的计算机高级语言中,都存在着变量这样一个重要的概念.变量是计算机高级语言程序的重要成分之一.与其他语言中的变量相比,C语言中的变量所包含的内容更为丰富,包括变量的定义.数据类型.变量数 ...

  9. c语言中外部变量的使用方法,C语言外部变量的使用以及erxtern的用法

    网上有很多帖子问C语言中extern的用法,而且回答的详细程度各尽不同. 所以我就像写一篇博文来谈谈我对extern的看法,不一定十分恰当,只当大家共勉. 变量定义性声明和引用性声明 变量的声明有两种 ...

最新文章

  1. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务
  2. Nginx支持CGI
  3. @Component注解解析
  4. c语言计算除法一位小数点,高精度除法小数点位数
  5. 使用sealos安装K8S集群时,需确保节点的swap是关闭的
  6. Maven实战(八)——常用Maven插件介绍(下)
  7. 发布面向Outlook(RPC)的Exchange Server
  8. 基于.NET Core的简单,跨平台,模块化的电子商务系统-SimplCommerce
  9. 带你了解AKG正反向算子注册+关联流程
  10. 【Objective-C】探索Category底层的实质
  11. 多维灰色预测模型的一点改进
  12. Spring Boot入门(12)实现页面访问量统计功能
  13. 请教一下水卡校验算法
  14. java雀圣麻将游戏_《梦幻麻将馆9雀圣争霸》全攻略
  15. 深入了解JVM之内存模型(四)
  16. 厦门考计算机竞赛保送北大清华名单,厦门这所学校130人获清华北大等名校保送资格...
  17. 大数据毕设 地铁客流分析与可视化系统
  18. 在家做什么兼职最靠谱?不去上班做什么好?
  19. Python官网安装
  20. [python]bokeh学习总结——QuickStart

热门文章

  1. Error:Could not find appcompat-v7.aar (com.android.support:appcompat-v7:26.1.0). Searched in the fol
  2. c语言编程运动会分数统计系统报告,独家稿件:定稿运动会分数统计系统设计报告_完整版...
  3. MKNetWorkKit使用方法
  4. TCP报文发送的那些事
  5. 基于vue2 + vue-router + vuex 构建的一个新闻类大型单页面应用 —— 今日头条
  6. 详细到没朋友,一文帮你理清Linux 用户与用户组关系~
  7. 20145240 《Java程序设计》第四次实验报告
  8. Linux下百度云盘报 获取bdstoken失败
  9. Scrum Meeting 报告
  10. C++内存分配与对象构造的分离