c语言 数组初始化非零,C语言与单机-28-数组初始化
我们定义一个数组,只是在内存中申请了一个连续的地址空间。空间大小是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-数组初始化相关推荐
- 【 MATLAB 】any 函数介绍(确定是否有任意数组元素非零)
any Determine if any array elements are nonzero(确定是否有任何数组元素非零) Syntax B = any(A) B = any(A,dim) Desc ...
- c语言左边自动补零,c语言左移4,余位补零 时不时乘以16?
c语言左移4,余位补零 时不时乘以16?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言左移4,余位补零 时不时乘 ...
- c语言字符指针清零,C语言中字符串的内存地址操作的相关函数简介
C语言bcopy()函数:复制内存(字符串)头文件: #include bcopy() 函数用来复制内存(字符串),其原型为: void bcopy(const void *src, void *de ...
- 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 ...
- c语言定义不定长数组初始化_大学C语言期末考试练习题(带详解答案)(1)
链接:https://pan.baidu.com/s/1d2Bb1vNTyBNpFGneIAicVw 提取码:y7uw 单项选择题 C语言的基本单位是 函数 1.(A )是构成C语言程序的基本单位. ...
- C语言 二维数组定义和使用 - C语言零基础入门教程
目录 一.二维数组简介 二.定义二维数组并初始化 1.定义二维数组 2.初始化二维数组 三.访问二维数组 四.修改二维数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 & ...
- C语言 数组定义和使用 - C语言零基础入门教程
目录 一.数组简介 二.定义数组并初始化 1.定义数组 2.初始化数组 三.访问数组 四.修改数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言 ...
- c语言如何将一个二维数组全为零_从零开始如何用python处理数据
这是一篇教程类的博客,面向的是非计算机专业的同学,所以比较基础 1. 使用语言和包 这里我用的是python进行处理.So, why python? Python语法相对简单,不是程序员的话,当做工具 ...
- 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量
非零基础自学Golang 文章目录 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量 3.1.1 声明变量 3.1.2 初始化变量 3.1.3 变量值交换 3.1.4 匿名变量 ...
最新文章
- Websocket总结
- K8s 文档增加反种族歧视声明 | 云原生生态周报 Vol. 54
- 直播 | 同源共流:一个优化框架统一与解释图神经网络
- keras卷积处理rgb输入_CNN卷积神经网络模型搭建
- nginx websocket 代理
- 【精选】Java高频面试题278道附答案,通关中大型互联网企业工程师必备
- c语言链表排序交换节点,链表节点排序问题
- redis MySQL 脏读_redis多线程情况下避免读脏数据的悲观锁解决方案
- 这个“国宝级”景区,被誉为世界第八大奇迹,形成原因是个谜
- 2020年电工(中级)新版试题及电工(中级)考试申请表
- 阿里云授权和子账号登录
- 大一作业HTML网页作业:简单的旅游 1页 (旅游主题)
- 7条简单粗暴的工作建议
- ACL 2020 MART: Memory-Augmented Recurrent Transformer for Coherent Video Paragraph Captioning
- 英雄连2显示无法连接服务器,英雄连2steam无法连接到更新服务器 | 手游网游页游攻略大全...
- 普通程序员真实的各个面试心酸历程——愿世界没有Java技术面试
- 狂神 MYSQL 笔记整理
- Excel系列:if、mathc、choose条件判断语法的使用
- MySQL 团队开发规范
- 来自开源支持者的第一笔捐赠
热门文章
- 让你的导图不一样的XMind7信息功能卡
- 读书笔记 1.数据包分析技术与网络基础 Wireshark数据包分析实战 第3版
- 【新版】系统架构设计师 - 系统工程与信息系统基础
- NVMe1.4b—Sanitize命令
- Camtasia Studio 2021软件免费秘钥序列号下载录制视频或微课教程
- s=s+1和s+=1的区别
- Could not find artifact net.sf.json-lib:json-lib:jar:2.4 in central
- Urho2D和 Physics2D
- ArcGIS10.2安装教程(win11版)
- Graphx图算法介绍