当前位置: 首页 > news >正文

C语言数组

一.数组定义

数组由数据类型相同的一系列元素组成

int main(){

float candy[365];

char code[12];

int states[50];

}

cnady是包含了365个float元素的数组。code是包含了12个char类型的数组。states包含了50个int类型的数组。

二.数组初始化和取值

我们使用花括号包含值,值之间用逗号分隔。而这些值会一次存储到数组当中,如果没有初始化,值为垃圾值。如果未初始化全部值,剩下的值为0。

而取值,使用数组名加方括号,方括号里面的数字叫数组下标,0代表数组第一个元素。n-1代表数组第n个元素

在这个例子中,我们并没有给num[2]复制,但因为我们初始化了数组的其他值,所以num[2]会自动被赋值0

在这个例子中,因为没有给数组初始化的原因,所以内部存储的都是垃圾值。

三.用const声明数组

有时候需要把数组设置为只读。这样,程序只能从数组中检索值,不能把新值写入数组。要创建只读数组,应该用const声明和初始化数组(不初始化,后面是无法赋值的)

const int num[2] = (1,2};

这样修改后,变量就变为了不可修改的左值程序在运行过程中就不能修改该数组中的内容。

四.指定初始化器(c99)

这是c99增加了一个新特征:指定初始化器,利用该特性可以初始化指定的数组元素。这个初始器除了拥有和普通数组只要初始化一个元素,其他元素的值都为零以外。还有另外两个特性

1.最后面的初始化的值会代替原先元素的值

2.在初始化指定后面的数会赋值到指定赋值后面的位置。

1.[1] = 29,1下标的值在前面被赋值了28。但以最后的初始化为主,所以就算29.如果后面还有指定1的小标的赋值,也会替换当前赋值。

2.[4] = 31,30,31;这里下标4被赋值了31,后面的30,31就会从指定赋值后面的位置开始继续赋值。所以30,31分别被赋值到了下标5和6;

有时候还会遇到特殊的情况,比如未指定元素大小的情况下使用指定初始化器。

从最后的运算结果我们可以得到days一共有7个元素,它是如何计算的,让我们来看下

从这张运算图当中我们可以看到除了3和4元素为零外,有数值的元素一直到7。7以后后面都是垃圾值了,这部分就不算在数组里面了。

从这部分我们也看出来,你的数组要了多少空间,那么你就用多少空间,不要越界使用。

五.二维数组

其实在讲二维数组之前,我们在来说下一维数组。我们从一维,二维来理解它们的不同。一维就是单纯

一条线。而二维就是平面。那么如果我们把一维理解成,在一条线上面存储多条类型相同的数据。那么一个平面也可以由无数条线组合起来。

所以

float rain[5][12] 可以理解为rain是一个内含5个数组元素的数组(一个平面上有5条线),每个数组元素内涵12个float类型的元素(每个线上有12个元素)

而三维就可以想象成多张表单(里面有多条表)。而更高的维度也可以这样理解下去。

按照数据存储的思维也可以把一维数组想象成一行数据,把二维数据想象成数据表,把三维数组现象成一叠数据表

六.初始化二维数组和打印二维数组

我们在打印一维数组的时候用了一个for循环,而如果我们想打印完二维数组元素则要用两个for循环(一个for循环嵌套另外一个for循环)

初始化

首先我们先来看第一个红色下划线

int num[2][3] = { {1,2,3} , {4,5,6} };

num[2]:num是一个内含两个元素的数组

int [3]:一个内含3个int元素的数组。

合并在一起就是一个内涵两个元素的数组,每个数组当中内含3个int元素

初始化的值。外围用一个花括号,内部两个花括号代表num[2],有两个数组,分别对两个数组的三个元素初始化。

这里我使用了两层for循环进行打印

num[i][j]:的意思是打印num第i个数组当中第j个元素

这里在讲一个小知识点。如果花括号的值没有全部初始完后面的值就会全部设为0

我们来反别看下两个相同赋值,但内部不加花括号的情况

num[2][3] = {{1,2},{4,5}};

这个很好理解和我们上面一维数组道理是一样的

num[2][3] = {1,2,4,5};

这里要明白,这些包含三个元素的数组在内存当中是连续存储的。如果我们不加花括号,系统就会自动按顺序赋值。而后面没有赋值的就自动给0。而带花括号其实就是对这个赋值范围进行的限制。


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

相关文章:

C语言数组

一.数组定义 数组由数据类型相同的一系列元素组成 如 int main(){ float candy[365]; char code[12]; int states[50]; … } cnady是包含了365个float元素的数组。code是包含了12个char类型的数组。states包含了50个int类型的数组。 二.数组初始化和取值 我们使用花括号包含值&…...

Scala 入门(第一章Scala 环境搭建、插件的安装)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 第 1 章 Scala 入门1.1 概述1.1.1 为什么学习 Scala1.1.2 Scala 发展历史1.1.3 Scala 和 Java 关系1.1.4 Scala 语言特点1.2 Scala 环境搭建1.3 Scala 插件安装1.4 HelloWorl…...

math@多项式@求和式乘法@代数学基本定理

文章目录多项式求和式乘法应用代数学基本定理相关证明高次方程其他关于多项式的参考多项式求和式乘法 S∏j1(∑k1ajk)⁣ ⁣ ⁣j∏j1m(∑k1njajk)⁣ ⁣ ⁣jS\prod_{j1}\left(\sum\limits_{k1}a_{jk}\right)_{\!\!\!j} \\\prod_{j1}^{m}\left(\sum\limits_{k1}^{n_j}a_{jk}\r…...

Kafka系列之:基于SCRAM和Ranger机制完成动态新增kafka读写账号、赋予账号对指定Topic的读写权限

Kafka系列之:基于SCRAM和Ranger机制完成动态新增kafka读写账号、赋予账号对指定Topic的读写权限 一、需求背景二、添加写用户三、查看用户是否添加到zookeeper中四、查看用户五、赋予用户topic写权限六、生产者配置文件七、ranger给用户权限八、往Topic写数据九、删除添加的用…...

第五十三章 DFS进阶(一)——剪枝优化

第五十四章 DFS进阶(一)——剪枝优化一、什么是剪枝?二、剪枝优化的策略1、优化搜索顺序2、排除等效冗余3、可行性剪枝4、最优性剪枝5、记忆化搜索三、例题1、AcWing 165. 小猫爬山(DFS 剪枝优化)2、AcWing 167. 木棒…...

Java字节码深度知多少?

文章目录1、字节码结构1.1、基本结构1.2、实际观测2、内存表示3、方法调用指令4、invokedynamicEND结语Java真的是长盛不衰,拥有顽强的生命力。其中,字节码机制功不可没。字节码,就像是 Linux 的 ELF。有了它,JVM直接摇身一变&…...

【C++】智能指针(万字详解)

🌈欢迎来到C专栏~~智能指针 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&…...

使用docker配置mysql主从复制

1.新建主服务器容器实例: docker run -p 3307:3306 --name mysql \ -v /docker/mysql/data:/var/lib/mysql \ -v /docker/mysql/conf:/etc/mysql/conf \ -v /docker/mysql/log:/var/log/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:5.7 设置容器卷之后&#xf…...

v3 异步组件及分包使用

1 app.vue <template> <!-- vue3异步组件必须使用suspense --> <Suspense> <template #default> <!-- 异步组件 --> <SyncVue></SyncVue> </template> <template v-slot:fallback> <!-- 优先显示骨架屏 --> <…...

实用调试技巧【上篇】

&#x1f534;本文章是在 Visual Studio 2022&#xff08;VS2022&#xff09;编译环境下进行操作讲解 文章目录&#x1f973;1. 什么是bug&#xff1f;&#x1f973;2.调试有多重要&#xff1f;2.1. 我们是如何写代码的&#xff1f;2.2.调试是什么&#xff1f;2.3.调试的基本步…...

JavaScript 教程

手册简介JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言&#xff0c;它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序员&#xff0c;但是 JavaScript 却拥有非常简单的语法。几…...

在SpringBoot里面使用原生的Servlet

在SpringBoot里面使用Servlet 首先在主程序中添加注解主程序添加ServletComponentScan // 加上这个注解之后就可以使用原生的组件了 HttpServlet 继承HttpServlet 重写方法 添加WebServlet 第一种方式使用注解 WebServlet(value "/helsk") public class HelloSe…...

商标被驳回,先别慌!挽回商标有办法

商标注册是一个漫长的等待过程&#xff0c;提交了注册申请之后不代表就能得心应手。商标局在接收到申请后&#xff0c;便会开始各阶段审查&#xff0c;面对不符合条件的商标会予以商标驳回。商标局基于什么原因而驳回注册申请呢?驳回后还有必要进行商标驳回复审吗?今天心周企…...

VMware安装Linux虚拟机后忘记root密码处理方法

OS版本&#xff1a;Red Hat 7.7 问题说明&#xff1a; 之前用VMWare安装了一台Linux虚机&#xff0c;由于长期没使用&#xff0c;导致忘记了root密码。所以需要修改root密码。 Root密码修改 现将修改root密码的操作步骤记录如下。 1.启动虚拟机&#xff0c;出现启动倒计时…...

Centos安装OpenResty

文章目录一. OpenResty是什么二. OpenResty的安装1. 安装开发库2. 安装OpenResty仓库3. 安装OpenResty4. 安装opm工具5. 目录结构6. 配置nginx的环境变量7. 启动和运行8. 配置文件修改三. 小案例1. 案例说明2. OpenResty监听请求3. 编写业务代码4. 获取请求参数一. OpenResty是…...

阿里云部署SpringBoot项目

目录 步骤1&#xff1a;购买服务器(新用户免费试用一个月) 步骤2&#xff1a;查看服务器相关信息 ​编辑 步骤3&#xff1a;设置安全组 步骤4&#xff1a;远程连接 步骤5&#xff1a;使用FinalShell连接阿里云服务器 步骤6&#xff1a;阿里云服务器上安装JDK ​编辑 步骤7…...

EdgeCOM嵌入式边缘计算机的参数配置

EdgeCOM嵌入式边缘计算机的参数配置&#xff1a; 下面以 eth0 为例进行命令说明。 在 Linux 系统下&#xff0c;使用 ifconfig 命令可以显示或配置网络设备&#xff0c;使用 ethtool 查询及 设置网卡参数。 设置 IP 地址&#xff0c;查看当前网卡详情&#xff1a; rootfl-imx6u…...

字节软件测试岗:惨不忍睹的三面,幸好做足了准备,月薪15k,拿到offer

我今年25岁&#xff0c;专业是电子信息工程本科&#xff0c;19年年末的时候去面试&#xff0c;统一投了测试的岗位&#xff0c;软件硬件都有&#xff0c;那时候面试的两家公司都是做培训的&#xff0c;当初没啥钱&#xff0c;他们以面试为谎言再推荐去培训这点让我特别难受。 …...

【编程基础之Python】5、安装Python第三方模块

【编程基础之Python】5、安装Python第三方模块安装Python第三方模块为什么需要安装第三方模块Python包管理器介绍pippip installpython -m pip installcondaconda install在Windows环境中安装Python模块安装numpy安装pandas安装matplotlib在Linux环境中安装Python模块在PyCharm…...

JavaScript 教程导读

JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都使用 JavaScript&#xff0c;可以用于改进设计、验证表单、检测浏览器、创建cookies等。JavaScript 非常容易学。本教程将教你学习从初级到高级JavaScript知识。JavaScript 在线实例本教程包含了大量的 JavaScript 实例&a…...

从面试旅行到EDA设计:工程思维如何应对混乱与不确定性

1. 一次糟糕的面试旅行&#xff1a;从混乱到反思的工程思维那天早上醒来&#xff0c;看到闹钟指针的那一刻&#xff0c;我就知道一切都乱套了。作为一名在谢菲尔德攻读控制工程学士学位的学生&#xff0c;我本该精神抖擞地前往伦敦郊区参加人生中第一次工业实习面试。然而&…...

终极网盘直链下载助手完整指南:免费解锁八大平台高速下载

终极网盘直链下载助手完整指南&#xff1a;免费解锁八大平台高速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...

【临床研究者必藏】Perplexity+Lancet联合检索SOP:从预印本争议到正式发表的全周期追踪方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;PerplexityLancet联合检索SOP的临床价值与范式变革 在循证医学实践加速数字化的当下&#xff0c;Perplexity&#xff08;基于语义理解与推理增强的检索引擎&#xff09;与《The Lancet》开放文献元数据…...

macOS桌面歌词神器LyricsX:免费开源歌词同步工具完整指南

macOS桌面歌词神器LyricsX&#xff1a;免费开源歌词同步工具完整指南 【免费下载链接】Lyrics Swift-based iTunes plug-in to display lyrics on the desktop. 项目地址: https://gitcode.com/gh_mirrors/lyr/Lyrics LyricsX是一款专为macOS设计的开源桌面歌词显示工具…...

windows构建mamba环境

收集必要的whl文件 在某&#x1f41f;等平台或者是精密搜索找到以下whl文件 对于3.10 python triton-2.0.0-cp310-cp310-win_amd64.whl causal_conv1d-1.1.1-cp310-cp310-win_amd64.whl mamba_ssm-1.1.3-cp310-cp310-win_amd64.whl 对于3.11 python FuouM/mamba-ssm-windo…...

用100道题拿下你的算法面试(链表篇-7):复制带随机指针的链表

一、面试问题 给定一个链表的头节点&#xff0c;链表中每个节点都包含两个指针&#xff1a;一个指向下一个节点的 next 指针&#xff0c;以及一个指向链表中任意节点的 random 指针。请复制该链表&#xff0c;并返回新链表的头节点。 二、【朴素解法】使用哈希表 —— 时间复杂…...

硬件相关项目内容介绍(硬件咱们也有相关技术支持内容哦)

硬件相关项目内容介绍&#xff08;硬件咱们也有相关技术支持内容哦&#xff09; 硬件咱们也有相关技术支持内容哦。 主要看大家喜欢什么&#xff0c;硬件内容咱们会不定期更新分享&#xff0c;大家要是喜欢&#xff0c;后续就安排上实物实操。也虚心听取大家建议&#xff0c;不…...

Sora 2正式版突然开放API灰度权限?我们逆向解析了127行响应头与rate limit策略,发现3个隐藏调用阈值

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Sora 2正式版核心能力与架构演进 Sora 2正式版标志着视频生成大模型从研究原型迈向工业级部署的关键跃迁。其底层架构采用分层时空联合建模&#xff08;Hierarchical Spatio-Temporal Transformer&…...

基于大语言模型的银行对账单自动化分析与财务预测实战

1. 项目概述&#xff1a;当大语言模型遇上个人财务分析最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“AI银行对账单文档自动化与个人财务分析预测”。光看这个标题&#xff0c;就能感觉到一股浓浓的“技术赋能生活”的味道。简单来说&#xff0c;这个项目想干的事儿&am…...

基于MCP协议与FFmpeg构建AI视频处理服务器:原理、部署与实战

1. 项目概述&#xff1a;一个面向视频处理的MCP服务器 最近在折腾一些AI应用&#xff0c;发现很多工具在处理视频内容时&#xff0c;总感觉差了那么一口气。要么是功能太单一&#xff0c;只能做简单的剪辑或转码&#xff1b;要么就是流程太复杂&#xff0c;需要把视频下载、处…...