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…

抖音快手短视频直播课程:从0基础到精通,定位、运营、内容、拍摄、剪辑、养号、算法、小店、直播、话术、变现等

随着社交媒体的飞速发展&#xff0c;抖音作为短视频领域的佼佼者&#xff0c;已经成为众多个人和企业展示自我、推广品牌的重要平台。但如何在众多内容中脱颖而出&#xff0c;吸引更多粉丝和关注&#xff0c;成为许多人的困惑。 为此&#xff0c;我们特别推出“抖音运营高手速…

sftp+ssh+nginx部署

SFTP方式登录服务器部署静态资源 使用软件&#xff1a;xftp IP&#xff1a;xx.xx.xx.xx 用户名&#xff1a;root 密码&#xff1a;xx SSH方式登录服务器修改nginx配置文件 使用软件&#xff1a;xshell、putty IP&#xff1a;xx.xx.xx.xx 用户名&#xff1a;root 密码&#x…

docker_构建镜像成功但启动容器的执行程序总是报文件找不到(lesson)

碰到问题 有一次做了一个镜像&#xff0c;制作成功&#xff0c;但运行容器总是报错&#xff1a;找不到文件。 dockerfile如下&#xff1a; FROM golang:1.18 AS builder WORKDIR /app COPY go.mod main.go ./ RUN go mod download COPY . . RUN go build -o tools_cpu_burner…

操作系统概述

操作系统概述 ## 认识操作系统 不同角度看到的操作系统 : 整体看, 使用者, 操作系统者, 普通开发者 从程序执行看 操作系统是其它所有用户程序运行的基础 #include <stdio.h>int main() {printf(“ Hello world\n”); } 该程序的执行过程 : 操作系统检查字符串的…

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…

《解锁创意无限:Stable Diffusion 详细教程指南》

在当今数字艺术的浪潮中&#xff0c;Stable Diffusion 以其强大的功能和创新性成为了众多创作者的新宠。如果你还对它感到陌生&#xff0c;或者想要更深入地了解如何运用它来创造令人惊叹的艺术作品&#xff0c;那么这篇教程将是你的绝佳指南。 一、Stable Diffusion 简介 St…

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 加载矢量…

03-3.1.3 栈的链式存储的实现

&#x1f44b; Hi, I’m Beast Cheng&#x1f440; I’m interested in photography, hiking, landscape…&#x1f331; I’m currently learning python, javascript, kotlin…&#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…

【微服务】使用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…