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

【c++】数组

文章目录

  • 一维数组
    • 定义方式
    • 数组名
    • 案例
      • 案例1:元素逆置
      • 案例2:冒泡排序
  • 二维数组
    • 定义方式
    • 数组名
    • 案例:考试成绩统计


数组特点:
1、每个数据元素放在一块连续的内存空间中;
2、数组中每个数据元素都是相同数据类型;
3、可以通过下标来访问数组中的元素,数组元素下标是从0开始索引的。

一维数组

定义方式

1、数据类型 数组名[数组长度];
2、数据类型 数组名[数组长度]={值1,值2,…};
3、数据类型 数组名[]={值1,值2,…};

int arr1[3];
arr1[0] = 6;  //利用下标赋值
arr1[1] = 9;
arr1[2] = 3;int arr2[5] = { 0,7,5,9,8 };int arr3[] = { 9,8,7,6,5,4,3,2,1 };

数组名

用途:
1、可以统计整个数组占用内存大小;
2、可以获取数组在内存中的首地址。
注意:数组首地址和数组中第一个元素地址是相同的。

int arr[5] = { 1,2,3,4,5 };cout << "整个数组占用内存空间为:" << sizeof(arr) << endl;
cout << "每个元素占用内存空间为:" << sizeof(arr[0]) << endl;
cout << "数组中元素个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;cout << "数组首地址为:" << arr << endl;  //十六进制
cout << "数组首地址为:" << (int)arr << endl;  //十进制
cout << "数组中第一个元素地址为:" << (int)&arr[0] << endl;
cout << "数组中第二个元素地址为:" << (int)&arr[1] << endl;输出:
整个数组占用内存空间为:20
每个元素占用内存空间为:4
数组中元素个数为:5
数组首地址为:003BFA9C
数组首地址为:3930780
数组中第一个元素地址为:3930780
数组中第二个元素地址为:3930784

案例

案例1:元素逆置

#include<iostream>
using namespace std;
int main()
{int arr[] = { 1,2,3,4,5,6 };int start = 0;  //起始下标int end = sizeof(arr) / sizeof(arr[0]) - 1;  //结束下标int temp;while (start < end){temp = arr[start];arr[start] = arr[end];arr[end] = temp;start++;end--;}for (int i = 0; i < 6; i++){cout << arr[i] << endl;}system("pause");return 0;
}

案例2:冒泡排序

#include<iostream>
using namespace std;
int main()
{int arr[9] = { 1,6,9,7,2,3,5,4,8 };int temp;for (int n = 9-1; n >= 0; n--){for (int i = 0; i < n; i++){if (arr[i] > arr[i + 1]){temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}}}for (int j = 0; j < 9; j++){cout << arr[j] << endl;}system("pause");return 0;
}

二维数组

定义方式

1、数据类型 数组名[行数][列数];
2、数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
3、数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
4、数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};

注意:可以省略行数不可以省略列数,如果省略了列数,就不能确定一行有多少个元素,也不能确定数组有多少行。

int arr1[2][3];int arr2[2][3] = 
{{1,2,3},{4,5,6}
};int arr3[2][3] = { 1,2,3,4,5,6 };int arr4[][3] = { 1,2,3,4,5,6 };

数组名

用途:
1、可以统计整个数组占用内存大小;
2、可以获取数组在内存中的首地址。

int arr[2][3] =
{{1,2,3},{4,5,6}
};cout << "二维数组占用内存空间为:" << sizeof(arr) << endl;
cout << "二维数组第一行占用内存空间为:" << sizeof(arr[0]) << endl;
cout << "二维数组第一个元素占用内存空间为:" << sizeof(arr[0][0]) << endl;cout << "二维数组行数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;cout << "二维数组首地址为:" << arr << endl;
cout << "二维数组首地址为:" << (int)arr << endl;
cout << "二维数组第一行首地址为:" << (int)arr[0] << endl;
cout << "二维数组第二行首地址为:" << (int)arr[1] << endl;
cout << "二维数组中第一个元素首地址为:" << (int)&arr[0][0] << endl;
cout << "二维数组中第二个元素地首址为:" << (int)&arr[0][1] << endl;输出:
二维数组占用内存空间为:24
二维数组第一行占用内存空间为:12
二维数组第一个元素占用内存空间为:4
二维数组行数为:2
二维数组列数为:3
二维数组首地址为:0073F75C
二维数组首地址为:7599964
二维数组第一行首地址为:7599964
二维数组第二行首地址为:7599976
二维数组中第一个元素首地址为:7599964
二维数组中第二个元素地首址为:7599968

案例:考试成绩统计

#include<iostream>
using namespace std;
int main()
{int scores[3][3] ={{100,100,100},{90,50,100},{60,70,80}};string name[] = { "张三","李四","王五" };for (int i = 0; i < 3; i++){int sum = 0;for (int j = 0; j < 3; j++){sum += scores[i][j];}cout << name[i] << ":" << sum << endl;}system("pause");return 0;
}输出:
张三:300
李四:240
王五:210

相关文章:

【c++】数组

文章目录一维数组定义方式数组名案例案例1&#xff1a;元素逆置案例2&#xff1a;冒泡排序二维数组定义方式数组名案例&#xff1a;考试成绩统计数组特点&#xff1a; 1、每个数据元素放在一块连续的内存空间中&#xff1b; 2、数组中每个数据元素都是相同数据类型&#xff1b;…...

线程池的简单实现:Java线程池初学者必读指南

"作为一名Java开发者&#xff0c;是否曾经遇到过多线程并发的问题&#xff1f;线程数量过多时&#xff0c;会导致资源浪费&#xff0c;应用性能下降&#xff0c;甚至发生线程死锁的情况。那么&#xff0c;有没有一种方法可以有效地管理线程&#xff0c;避免这些问题呢&…...

【C#】[带格式的字符串] 复合格式设置字符串与使用 $ 的字符串内插 | 如何格式化输出字符串

复合格式输出 string name "Fred"; String.Format("Name {0}, hours {1:hh}", name, DateTime.Now);通过指定相同的参数说明符&#xff0c;多个格式项可以引用对象列表中的同一个元素。 例如&#xff0c;通过指定“0x{0:X} {0:E} {0:N}”等复合格式字符…...

Lecture4 反向传播(Back Propagation)

目录 1 问题背景 1.1计算图&#xff08;Computational Graph&#xff09; 1.2 激活函数&#xff08;Activation Function&#xff09;引入 1.3 问题引入 2 反向传播&#xff08;Back Propagation&#xff09; 2.1 为什么要使用反向传播 2.2 前馈运算(Forward Propagation…...

Power BI 筛选器函数---Window实例详解

一、Window函数 语法&#xff1a; Window ( <起始位置>,<起始位置类型>,<结束位置>,<结束位置类型>, [<关系>], [<OrderBy>],[空白],[PartitionBy] ) 含义&#xff1a; 对指定分区&#xff08;PartitioinBy)中的行&#xff08;关系表&…...

基础篇—如何创建css样式表,并集成到html文件中?

CSS 创建 HTML相当于一个页面的结构,CSS相当于页面的装饰,浏览器当读到一个样式表时,浏览器会根据它来格式化 HTML 文档。 如何插入样式表 插入样式表的方法有三种: 外部样式表(External style sheet)内部样式表(Internal style sheet)内联样式(Inline style)1、外…...

WindowsServer服务器系列:部署FTP文件服务

1、点击“开始”菜单&#xff0c;选择“服务器管理器” 2、在接下来弹出页面中选择“添加角色和功能” 3、接下来点击“下一步” 4、接下来选择“基于角色或基于功能的安装”并点击“下一步” 5、选择“从服务器池中选择服务器”并点击“下一步” 6、接下来选中“Web 服务器(II…...

华为OD机试 - 数字加减游戏(Python)| 真题+思路+代码

数字加减游戏 题目 小明在玩一个数字加减游戏,只使用加法或者减法,将一个数字 s 变成数字 t。 每个回合,小明可以用当前的数字加上或减去一个数字。 现在有两种数字可以用来加减,分别为 a,b(a!=b),其中 b 没有使用次数限制。 请问小明最少可以用多少次 a,才能将数字 s …...

【c/c++】c语言的自增操作在不同编译器的差别

示例代码 代码如下&#xff1a; #include <stdio.h>#define product(x) ((x)*(x))int main(void) {int i 3, j, k;j product(i); // (i) * (i)k product(i); // (i) * (i)printf("%d %d\n", j, k); }执行结果 在Ubuntu18.04下通过GCC编译和执行的结果…...

【LeetCode第 332 场周赛】

传送门 文章目录6354. 找出数组的串联值6355. 统计公平数对的数目6356. 子字符串异或查询6357. 最少得分子序列6354. 找出数组的串联值 题目 思路 前后指针 代码 class Solution { public:long long findTheArrayConcVal(vector<int>& nums) {long long res 0;i…...

【蓝桥杯单片机】Keil5中怎么添加STC头文件;从烧录软件中添加显示添加成功后新建工程时依旧找不到

蓝桥杯单片机的芯片型号&#xff1a;IAP15F2K61S2 添加头文件&#xff1a;STC15F2K60S2.H 【1】如何通过烧录软件添加STC头文件&#xff1a; 从ATC-ISP的Keil仿真设置中添加&#xff08;同时自动下载仿真驱动&#xff09;仔细阅读添加说明 KEIL5添加STC芯片库_Initdev的博客-…...

图解浏览器渲染页面详细过程

渲染详细过程 产生渲染任务&#xff0c;开启渲染流程 当浏览器的网络线程收到 HTML 文档后&#xff0c;会产生一个渲染任务&#xff0c;并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下&#xff0c;渲染主线程取出消息队列中的渲染任务&#xff0c;开启渲染流程。…...

多线程面试题开胃菜1(5道)

一.多线程有什么用&#xff1f;1&#xff09;发挥多核CPU 的优势随着工业的进步&#xff0c;现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的&#xff0c;4 核、8 核甚至 16 核的也都不少见&#xff0c;如果是单线程的程序&#xff0c;那么在双核 CPU 上就浪费了 50…...

植物育种中广义遗传力的定义

大家好&#xff0c; 我是邓飞。 今天聊一下广义遗传力的计算方法。 广义遗传力定义 广义遗传力&#xff08;H2H^2H2&#xff09;定义为归因于基因型总体遗传变异的表型变异比例。 通常他包括三个解释&#xff1a;&#xff08;详见我这篇博客的公式推导 回归系数 相关系数 遗…...

西瓜书读书笔记—绪论

文章目录机器学习典型的机器学习过程基本术语归纳偏好机器学习 机器学习&#xff1a;致力于研究如果通过计算的手段&#xff0c;利用经验来改善系统自身的性能 在计算机系统中&#xff0c;“经验” 通常以 “数据” 形式存在&#xff0c;因此&#xff0c;机器学习所研究的主要内…...

ES8——Generator函数的使用

babel工具插件下载&#xff1a;npm i --save babel-polyfill 引入&#xff1a;polyfill.js进行转码&#xff08;es8->es5&#xff09; 介绍 Generator函数用于生成迭代器 function * (){} yeild: 作用同return类似 {const obj function* () {yield "a";yield 12…...

德馨食品冲刺A股上市:计划募资9亿元,林志勇为实际控制人

近日&#xff0c;浙江德馨食品科技股份有限公司&#xff08;下称“德馨食品”或“德馨饮料”&#xff09;预披露更新招股书&#xff0c;准备在上海证券交易所主板上市。据贝多财经了解&#xff0c;德馨食品于2022年7月5日递交上市申请&#xff0c;安信证券为其保荐机构。 本次…...

湿敏电阻的原理,结构,分类与应用总结

🏡《总目录》 0,概述 湿敏电阻是指电阻值随着环境的湿度变化而变化的电阻,本文对其工作原理,结构,分类和应用场景进行总结。 1,工作原理 湿敏电阻是利用湿敏材料制成的,湿敏材料吸收空气中水分时,自身的阻值发生变化。 2,结构 如下图所示,市民电阻包括4个部分构成,…...

千锋教育嵌入式物联网教程之系统编程篇学习-03

目录 进程的终止 exit函数 _exit函数 进程退出清理 进程间的替换 进程间通信 常见通信机制 进程间通信的实质 信号 产生信号的方式 信号的默认处理方式 进程对信号的处理方式 kill函数 进程的终止 使用exit函数对进程进行终止&#xff0c;而return只是结束函数&a…...

升级到https

现在很多站长都会考虑将自己的站点从http升级到https&#xff0c;不仅是基于安全的考虑&#xff0c;有的也是因为第三方平台的限制&#xff0c;如谷歌浏览器会将http站点标记为不安全的站点&#xff0c;微信平台要求接入的微信小程序必须使用https等。 那如何将一个http站点升…...

【C语言】数据结构-二叉树

主页&#xff1a;114514的代码大冒险 qq:2188956112&#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ &#xff09; Gitee&#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 引入 我们之前已经学过线性数据结构&#xff0c;今天我们将介绍非线性数据结构----树 树是一种非线性的…...

c++中std::condition_variable最全用法归纳

前言 建议阅读以下文章前需先对建立 std::thread 多线程与std::mutex 锁有一定程度的熟悉 std::thread最全用法归纳 std::mutex最全用法归纳 概括 使用 std::condition_variable 的 wait 会把目前的线程 thread 停下来并且等候事件通知&#xff0c;而在另一个线程中可以使用…...

Python数据可视化:数据关系图表可视化

目录 1、散点图 1.1、趋势显示的二维散点图 1.2、分布显示的二维散点图 1.3、散点曲线图...

Urho3D约定

Urho3D使用以下约定和原则&#xff1a; 左手坐标系。正X、Y和Z轴指向右侧、上方和前方&#xff0c;正旋转为顺时针。度用于角度。顺时针顶点定义正面。音频音量指定为0.0&#xff08;静音&#xff09;到1.0&#xff08;全音量&#xff09;路径名使用斜杠而不是反斜杠。调用操作…...

python数据结构-列表,元组

列表 列表是Python中最通用的数据类型&#xff0c;可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是&#xff0c;列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字&#xff0c;字符串&#xff0c;数组&#xff0c;字典等甚至是列表类…...

Properties类读配置文件、修改配置文件

Properties类简介(1)Properties类是专门用于读写配置文件的集合类(2)配置文件的后缀名为.properties,内容格式为:# 可以用“#”作为注释 键值 键值**注意:**键值对不需要有空格,值不需要用引号一起来。默认类型是String。键、值不可以是null(3)Properties类的方法可查找api文档…...

图解LeetCode——剑指 Offer 24. 反转链表

一、题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 二、示例 示例: 【输入】 1->2->3->4->5->NULL 【输出】 5->4->3->2->1->NULL 限制&#xff1a; 0 < 节点个数 < 5000 三、…...

【C语言】“指针的运算”、“指针与数组”

文章目录一、指针运算1.指针 - 整数2.指针-指针3.指针关系运算二、指针与数组三、二级指针四、指针数组完结一、指针运算 指针可以进行整数&#xff0c;指针-指针&#xff0c;还有关系运算&#xff0c;其他的运算会被编译器阻止。 1.指针 - 整数 对指针进行的时候一定要注意不…...

Linux高级命令之查找文件命令

查找文件命令学习目标能够说出查找文件使用的命令1. find命令及选项的使用命令说明find在指定目录下查找文件(包括目录)find命令选项:选项说明-name根据文件名(包括目录名)字查找find命令及选项的效果图:2. find命令结合通配符的使用通配符:是一种特殊语句&#xff0c;主要有星…...

PyCharm+Docker:打造最舒适的深度学习炼丹炉

九、PyCharmDocker&#xff1a;打造最舒适的深度学习炼丹炉 安装docker&#xff1a; 如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose https://zhuanlan.zhihu.com/p/547169542 修改Linux硬盘卷标&#xff1a; ntfs文件系统&#xff1a;https://blog.csdn.net/n…...

wordpress 安全吗/软文广告是什么

4月28日&#xff0c;对于清华大学来说&#xff0c;不仅仅是107周年的校庆&#xff0c;更是接受刘强东夫妇捐赠2亿元人民币的日子&#xff0c;真的是喜上加喜呀。至于说这笔捐赠是用来做什么的&#xff0c;其实京东和清华已经有很好的安排了&#xff0c;那就是用于支持清华大学苏…...

网站每月流量/东莞做网站优化

2019独角兽企业重金招聘Python工程师标准>>> class Person_Tbl(models.Model): 定义人物类 name models.CharField(max_length254,default) #姓名 sex models.CharField(max_length125,default) …...

网站建设目标论文/电脑培训学校在哪里

刚开始接触网络的时候&#xff0c;都必须得学习 OSI 模型&#xff0c;很多人不以为然&#xff01; 但是该模型&#xff0c;对于项目中的技术实施与故障定位与排查&#xff0c;具有极其重要的意义&#xff01; 少年&#xff0c;慢慢体会~~ 附件&#xff1a;http://down.51cto.co…...

thinkphpcmf网站开发/seo的重要性

Android Studio Profiler 检查内存简单介绍 如何使用&#xff1f; 第一步&#xff1a;点击Profiler按钮 第二步&#xff1a;选择 第三步&#xff1a;选择Capture heap dump 并点击Record 解释相关按钮的功能 垃圾桶按钮&#xff1a;用于强制执行垃圾回收事件的按钮&#xff…...

做报告的网站/市场调研的方法有哪些

之前设置了文件夹的共享属性&#xff0c;添加了一个everyone用户&#xff0c;并分配了完全控制的权限&#xff0c;结果文件夹内有很多文件提示没有访问权限&#xff0c;打不开也删不掉&#xff0c;应该是我之前想设置不会被删的时候出了错 解决办法 右键属性>安全>高…...

wordpress网站安全/百度网站官网入口

收稿日期: 2012 年 3 月 基于 MATLAB 的机床主轴结构优化设计 刘红娟宝鸡文理学院 摘要: 介绍了机床主轴的结构&#xff0c;建立了以质量最轻为目标函数的优化模型&#xff0c;运用 MATLAB 优化工具箱中的fmincon 函数对其进行优化设计。通过对已有的机床主轴实例进行优化求解和…...