我们定义一个数组,只是在内存中申请了一个连续的地址空间。空间大小是sizeof(data_type)*number.  dat_type指的是数组元素的数据节本类型,sizeof是C语言的运算符,可以返回一个dat_type的数据占用的地址空间,单位为字节。我原来一位sizeof是C语言的函数库,但在有些资料介绍sizeof是C语言的运算符,性质与"+ 、-、 *、/ 、% "相同。想想也对。因为sizeof可以随时使用,不用#include。理解为运算符更加合理。 number是数组元素的数量。

int    a[15];

该语句也就是声明了一块内存,空间大小为sizeof(int)*12个字节空间。既然数组是内存中一块连续的地址空间,那么他的物理地址在哪里,如果只是简单的使用数组是不需要知道的。因为系统会自动安排的。比如我们参照一本书上的例子:

#include

#define  MONTHS   12

int  main ( void )

{

unsigned char i;

unsigned char month[ MONTHS ]={31,28,31,30,31,30,31,31,30,31,30,31} ;

for(i=0;i

{

printf("%d月有%d天\n",i+1,  minth[i]);

}

return 0;

}

我们打印出了每个月的天数。

我们再声明数组时初始化了数组,使用for语句遍历数组,通过下标访问了数组。

我们改写一下该代码

#include

#define  MONTHS   12

int  main ( void )

{

unsigned char i;

unsigned char month[MONTHS]={31,};

for(i=0;i

printf("%d月有%d天\n",i+1,month[i]);

return 0;

}

我们初始化时并没有初始化晚12个月,运行结果如下:

除了第一个元素师31外,其余全为0,因为我们再初始化过程中只初始化第一个元素。但是其余元素的值都自动初始化为0.不是一个偶然而是一个必然。C语言就是这么规定。只要对数组其中一个元素初始化时赋值,其余元素值都会默认为0。

如果我们不做任何初始化会怎样??我们试一下

#include

#define  MONTHS   12

int  main ( void )

{

unsigned char i;

unsigned char month[MONTHS];//={31,};

for(i=0;i<1MONTHS   i++)

printf("%d月有%d天\n",i+1,month[i]);

return 0;

}

所有数组元素的值为204,值为204是一个偶然现象。因为如果不做任何初始化内存的内容没有任何规律。大家可以自己试一下。

介绍一下C99中的新内容

unsigned char month[MONTHS];//={{5}=31,   {7}=31 } ;

只对第5个元素和第7个元素赋初值,其余为0.在有些C编译器中是不支持的。

c语言 数组初始化非零,C语言与单机-28-数组初始化相关推荐

  1. 【 MATLAB 】any 函数介绍(确定是否有任意数组元素非零)

    any Determine if any array elements are nonzero(确定是否有任何数组元素非零) Syntax B = any(A) B = any(A,dim) Desc ...

  2. c语言左边自动补零,c语言左移4,余位补零 时不时乘以16?

    c语言左移4,余位补零 时不时乘以16?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言左移4,余位补零 时不时乘 ...

  3. c语言字符指针清零,C语言中字符串的内存地址操作的相关函数简介

    C语言bcopy()函数:复制内存(字符串)头文件: #include bcopy() 函数用来复制内存(字符串),其原型为: void bcopy(const void *src, void *de ...

  4. csp真题 202109-2非零段划分C++代码(100分)

    试题编号: 202109-2 试题名称: 非零段划分 时间限制: 1.0s 内存限制: 512.0MB 样例1输入 11 3 1 2 0 0 2 0 4 5 0 2 样例1输出 5 样例1解释 p=2 ...

  5. c语言定义不定长数组初始化_大学C语言期末考试练习题(带详解答案)(1)

    链接:https://pan.baidu.com/s/1d2Bb1vNTyBNpFGneIAicVw 提取码:y7uw 单项选择题 C语言的基本单位是 函数 1.(A  )是构成C语言程序的基本单位. ...

  6. C语言 二维数组定义和使用 - C语言零基础入门教程

    目录 一.二维数组简介 二.定义二维数组并初始化 1.定义二维数组 2.初始化二维数组 三.访问二维数组 四.修改二维数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 & ...

  7. C语言 数组定义和使用 - C语言零基础入门教程

    目录 一.数组简介 二.定义数组并初始化 1.定义数组 2.初始化数组 三.访问数组 四.修改数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言 ...

  8. c语言如何将一个二维数组全为零_从零开始如何用python处理数据

    这是一篇教程类的博客,面向的是非计算机专业的同学,所以比较基础 1. 使用语言和包 这里我用的是python进行处理.So, why python? Python语法相对简单,不是程序员的话,当做工具 ...

  9. 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量

    非零基础自学Golang 文章目录 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量 3.1.1 声明变量 3.1.2 初始化变量 3.1.3 变量值交换 3.1.4 匿名变量 ...

最新文章

  1. Websocket总结
  2. K8s 文档增加反种族歧视声明 | 云原生生态周报 Vol. 54
  3. 直播 | 同源共流:一个优化框架统一与解释图神经网络
  4. keras卷积处理rgb输入_CNN卷积神经网络模型搭建
  5. nginx websocket 代理
  6. 【精选】Java高频面试题278道附答案,通关中大型互联网企业工程师必备
  7. c语言链表排序交换节点,链表节点排序问题
  8. redis MySQL 脏读_redis多线程情况下避免读脏数据的悲观锁解决方案
  9. 这个“国宝级”景区,被誉为世界第八大奇迹,形成原因是个谜
  10. 2020年电工(中级)新版试题及电工(中级)考试申请表
  11. 阿里云授权和子账号登录
  12. 大一作业HTML网页作业:简单的旅游 1页 (旅游主题)
  13. 7条简单粗暴的工作建议
  14. ACL 2020 MART: Memory-Augmented Recurrent Transformer for Coherent Video Paragraph Captioning
  15. 英雄连2显示无法连接服务器,英雄连2steam无法连接到更新服务器 | 手游网游页游攻略大全...
  16. 普通程序员真实的各个面试心酸历程——愿世界没有Java技术面试
  17. 狂神 MYSQL 笔记整理
  18. Excel系列:if、mathc、choose条件判断语法的使用
  19. MySQL 团队开发规范
  20. 来自开源支持者的第一笔捐赠

热门文章

  1. 让你的导图不一样的XMind7信息功能卡
  2. 读书笔记 1.数据包分析技术与网络基础 Wireshark数据包分析实战 第3版
  3. 【新版】系统架构设计师 - 系统工程与信息系统基础
  4. NVMe1.4b—Sanitize命令
  5. Camtasia Studio 2021软件免费秘钥序列号下载录制视频或微课教程
  6. s=s+1和s+=1的区别
  7. Could not find artifact net.sf.json-lib:json-lib:jar:2.4 in central
  8. Urho2D和 Physics2D
  9. ArcGIS10.2安装教程(win11版)
  10. Graphx图算法介绍