Linux C语言:数组的定义和初始化

一、数组

1、定义

在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来,具有一定顺序关系的若干个变量的集合就是数组 。

2、特点

  • 组成数组的各个变量称为数组的元素
  • 数组中各元素的数据类型要求相同
  • 元素在内存中是连续依次排列的
  • 构造数据类型之一 

二、一维数组

1、定义 

  • 只有一个下标的数组。它在计算机的内存中是连续存储的。
  • C语言中,一维数组的说明一般形式如下:

<数据类型 > <数组名>[元素数量]

  • 元素数量必须是整数
  • 一旦创建不能改变元素的数量
    int a[10]; 

2、一维数组的初始化

  • 方式一:元素全部初始化
    int a[5] = {1, 2, 3, 4, 5};
  • 方式二:元素部分初始化
    int a[5] ={1, 2 };

  • 方式三:元素全部没初始化
    int a[5];

            全局数组默认是0,局部数组值是不确定

  • 方式四:省略元素数量初始化
    int a[ ] = {1, 2, 3, 4, 5};

                数组元素数量的个数就是初始化数值的个数

3、一维数组的引用 

  • 数组必须先定义,后使用
  • 只能逐个引用数组元素,不能一次引用整个数组
  • 数组元素表示形式:数组名[下标]

        其中:下标可以是常量或整型表达式 

int a[10];
printf(“%d”, a); (×)
for(j=0;j<10;j++)
printf(“%d\t”, a[j]); (√)

 4、一维数组的内存分配

  • 数组的元素是连续存储的
  • 数组占用内存空间 = 数组元素个数 * sizeof(元素数据类型)

5、数组名的含义 

  • 数组名代表整个数组
  • 数组名代表数组的首地址 (类似指针,后面会讲)
  • 数组占用内存空间 = sizeof(数组名)
  • 数组元素个数 = sizeof(数组名) / sizeof(元素数据类型)

6、数组越界 

  • 数组越界是指数组下标取值超过了数组元素数量的大小,这样对数组元素的访问超出了数组范围
  • C语言对数组不作越界检查,编译不报错,程序员要特别注意编程的严谨些。 
int a[5]; a[5] = 10 (×)

 三、二维数组

1、定义

(1)定义方式:数据类型 数组名[行数][列数]; →元素个数=行数*列数

int a[3][4];
float b[2][5];

(2)数组元素的存放顺序 

  • 二维数组:按行序优先 

 

2、二维数组元素的引用 

  • 形式:数组名[下标][下标] 
  • 二维数组的初始化

 

3、二维数组的理解 

 

4、二维数组的遍历 

  • 使用循环语句,打印二维数组的所有元素 
    // II. 打印二维数组中的字符串for(i = 0; i < num; i++){// 使用数组下标形式访问printf("%s\n", array[i]);// 使用指针访问//printf("%s\n", *(array + i));}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf的压缩该怎么做?快速在线压缩pdf的方法

pdf文件是现在很常用的一种文件格式&#xff0c;有很多的文件内容都可以通过这种格式来展示内容&#xff0c;比如一些通知文件、设计图、个人信息等等&#xff0c;文件的内容越多就会越大&#xff0c;在使用的时候经常会受到一定的限制。那么有什么方法能够快速的将pdf文件变小…

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率&#xff0c;但是其标注格式如何能转换成YOLO标注格式&#xff0c;具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

巧用docker+jmeter快速实现分布式百万级并发

分享背景 碰到的问题&#xff1a; 一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试&#xff5e; 解决办法&#xff1a; 1、修改jmeter配置文件里的内存堆 2、引入jmeter分布式压测 带来的问题&#xff1a; 如果我们要做分布式负载测试–我们需要1个…

企业数据挖掘建模平台极简建模流程

泰迪智能科技企业数据挖掘建模平台是企业自主研发&#xff0c;面向企业级用户的快速数据处理构建模型工具。平台底层算法基于R语言、Python、Spark等引擎&#xff0c;使用JAVA语言开发&#xff0c;采用 B/S 结构&#xff0c;用户无需下载客户端&#xff0c;可直接通过浏览器进…

GAT1399协议分析(7)--pycharm anaconde3 配置pyside2

一、安装pyside2 pip install pyside2 二、配置qtdesigner File->Settings->Tools->External tools 点击添加,添加QtDesigner, 注意designer.exe路径,需要在虚拟环境下。 三、添加pySide2 File->Settings->Tools->External tools 点击添加,添加PyS…

高效内容分发:海外短剧推广平台的流媒体传输技术挑战与解决

随着海外短剧市场的蓬勃发展&#xff0c;如何高效地将短剧内容分发给全球观众成为了推广平台必须面对的一大挑战。在这一过程中&#xff0c;流媒体传输技术起着至关重要的作用。然而&#xff0c;由于网络环境的复杂性和多样性&#xff0c;流媒体传输面临着带宽限制、延迟等诸多…

前端--导出

这边记录我们公司后端做的导出接口和前端是如何对接的 这边的技术栈是&#xff1a; 1&#xff1a; react 2&#xff1a; fetch 第一步&#xff1a;简单封装--导出界面 import { DrawerForm } from ant-design/pro-components; import { CloseOutlined } f…

iOS 之homebrew ruby cocoapods 安装

cocoapods安装需要ruby&#xff0c;更新ruby需要rvm&#xff0c;下载rvm需要gpg&#xff0c;下载gpg需要homebrew&#xff0c;所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods Rvm 官网&#xff1a; RVM: Ruby Version Manager - RVM Ruby Version Manager - Docum…

Linux 35.5 + JetPack v5.1.3@ ego-planner编译安装

Linux 35.5 JetPack v5.1.3 ego-planner编译安装 1. 源由2. 编译&安装Step 1&#xff1a;依赖库安装Step 2&#xff1a;建立工程Step 3&#xff1a;编译工程Step 4&#xff1a;安装工程 3. 问题汇总3.1 planner/plan_env - OpenCV3.2 uav_simulator/local_sensing - CUDA优…

《Navi日语社》App:日语学习与翻译的智能助手,支持日文OCR识别提取文字,无需打字对着说话就能翻译的日语语音翻译工具!

在全球化的今天&#xff0c;掌握一门外语已经成为许多人的必备技能。尤其是日语&#xff0c;不仅在学术、商务领域有着广泛的应用&#xff0c;也是许多旅行者和动漫爱好者的心头好。《Navi日语社》App&#xff0c;作为一款专为日语学习者和翻译需求者设计的移动应用&#xff0c…

Zookeeper复习

一、入门 1、概念 zookeeper文件系统通知机制 2.特点 1&#xff09;、一个领导者&#xff0c;多个跟随者组成的集群。 2&#xff09;、集群中只要有半数以上存活机制&#xff0c;zookeeper集群能正产服务。zk适合安装奇数台。 3&#xff09;、全局数据一致&#xff1a;每…

华为鸿蒙开发-鸿蒙基于ARKTS开发之启动模式

前言 鸿蒙生态取得爆发式增长&#xff01; 截至3月底&#xff0c;已有超4000个应用加入鸿蒙生态。 而在今年1月中旬&#xff0c;华为刚宣布HarmonyOS NEXT鸿蒙星河版面向开发者开放申请&#xff0c;这一版本鸿蒙系统也被称为“纯血鸿蒙”。 当时&#xff0c;华为宣布首批200…

2. QGis二次开发项目实践一之技术实现

前言 本文描述了QGis二次开发项目实践一的涉及到的技术点涉及到的QGis技术点如下 矢量图层加载显示矢量图层导出dxf矢量图层合并 代码描述 矢量图层加载显示 矢量图层加载显示在以前的教程中已有详细说明&#xff0c;请参考以下链接 5.1 加载矢量图层(ogr,gpx)5.2 加载矢量…

【微服务】使用kubekey部署k8s多节点及kubesphere

kubesphere官方部署文档 https://github.com/kubesphere/kubesphere/blob/master/README_zh.md kubuctl命令文档 https://kubernetes.io/zh-cn/docs/reference/kubectl/ k8s资源类型 https://kubernetes.io/zh-cn/docs/reference/kubectl/#%E8%B5%84%E6%BA%90%E7%B1%BB%E5%9E…

python中的函数概念

一段可以被重复使用的代码。 关于函数的定义 defdefine &#xff08;定义&#xff09; def 函数名&#xff08;形参列表&#xff09;&#xff1a;形参列表中&#xff0c;可以有多个形参&#xff0c;多个形参之间使用逗号分隔&#xff0c; 关于函数的调用 &#xff08;开始完…

Transformer 论文重点

摘要 提出了一个 Transformer 模型&#xff0c;针对于一个机器翻译的小任务上表现结果比当时所有模型的效果都好&#xff0c;并且架构相比其它更加简单&#xff0c;后面就火到了发现什么方向都能用的地步。 介绍 循环神经网络&#xff0c;特别是长短时记忆[ 13 ]和门控循环[…

kafka-消费者-指定offset消费(SpringBoot整合Kafka)

文章目录 1、指定offset消费1.1、创建消费者监听器‘1.2、application.yml配置1.3、使用 Java代码 创建 主题 my_topic1 并建立3个分区并给每个分区建立3个副本1.4、创建生产者发送消息1.4.1、分区0中的数据 1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1…

nginx动静分离和反向代理

一、动静分离 动静分离指的是将动态内容和静态内容分开处理。动态内容通常由后端应用程序生成&#xff0c;例如PHP、Python或Node.js&#xff0c;静态内容则包括图片、CSS、JavaScript等文件。 例子&#xff1a; #代理服务器一 server{listen 80;server_name www.dj.com;r…

夏季高温来袭|危化品如何安全储存?

《危险化学品安全管理条例》第三条 本条例所称危险化学品&#xff0c;是指具有毒害、腐蚀、爆炸、燃烧、助燃等性质&#xff0c;对人体、设施、环境具有危害的剧毒化学品和其他化学品。 随着夏天高温的来袭&#xff0c;炎热的天气对危化品储存威胁巨大&#xff0c;危化品事故也…

【C++课程学习】:C++入门(输入输出,缺省参数)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f369;1.关于C输入输出&#xff1a; &#x1f369;2.缺省参数函数&#xff1a; 缺省参数的概…