news 2026/7/8 4:55:51

13. 数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
13. 数组

1.数组简介

2.数组的访问与遍历

3.多维数组

4.数组的注意事项


1.数组简介

1).数组简介 数组是C++中一种"存储相同数据类型元素的连续内存集合",可以把它想象成一排编号的储物柜:每个储物柜(数组元素)类型 相同,有唯一的编号(下标),且位置连续 a.数组的大小在定义时必须确定,且一旦定义就无法修改(固定长度)b.数组下标从0开始,例如长度为5的数组,下标范围是0~4
2).数组声明和初始化 a.数组声明// 语法:数据类型 数组名[数组长度];intarr[5];// 声明一个能存储5个int类型元素的数组b.数组初始化#include <iostream>usingnamespacestd;intmain(){// 方式1:完全初始化(指定所有元素)intarr1[5]={1,2,3,4,5};// 方式2:部分初始化(未初始化的元素自动置0)intarr2[5]={1,2};// 结果:[1,2,0,0,0]// 方式3:省略长度(编译器根据初始化列表自动计算长度)intarr3[]={10,20,30};// 长度为3// 方式4:C++11及以上支持的空初始化(所有元素置0)intarr4[5]={};// 结果:[0,0,0,0,0]return0;}

2.数组的访问与遍历

1).单个元素访问 通过"数组名[下标]访问",注意"下标不能越界"
#include <iostream>usingnamespacestd;intmain(){intarr[5]={1,2,3,4,5};cout<<arr[0]<<endl;// 输出第一个元素:1cout<<arr[3]<<endl;// 输出第四个元素:4// 修改元素arr[2]=99;cout<<arr[2]<<endl;// 输出:99// 错误示例:下标越界(arr只有5个元素,下标最大为4)// cout << arr[5] << endl; // 未定义行为,程序可能崩溃return0;}

2).最常用的是for循环,C++11及以上还支持范围for循环#include <iostream>usingnamespacestd;intmain(){intarr[5]={1,2,3,4,5};// 方式1:普通for循环(通过下标遍历)cout<<"普通for循环遍历:"<<endl;for(inti=0;i<5;i++){// i从0到4,覆盖所有下标cout<<arr[i]<<" ";}cout<<endl;// 输出:1 2 3 4 5// 方式2:范围for循环(C++11及以上)cout<<"范围for循环遍历:"<<endl;for(intnum:arr){// 自动遍历arr的每个元素,num是元素值cout<<num<<" ";}cout<<endl;// 输出:1 2 3 4 5return0;}

3.多维数组

二维数组可以理解为"数组的数组",比如一个34列的表格:#include <iostream>usingnamespacestd;intmain(){// 声明并初始化3行4列的二维数组intmatrix[3][4]={{1,2,3,4},// 第一行{5,6,7,8},// 第二行{9,10,11,12}// 第三行};// 遍历二维数组(嵌套for循环)for(inti=0;i<3;i++){// 遍历行for(intj=0;j<4;j++){// 遍历列cout<<matrix[i][j]<<" ";}cout<<endl;// 每行结束换行}return0;}

4.数组的注意事项

1).数组长度必须是常量(不能用变量定义,C++11的constexpr除外)intn=5;// int arr[n]; // 错误:n是变量,C++标准不支持(部分编译器如GCC可能兼容,但不推荐)constintm=5;intarr[m];// 正确:m是常量
2).数组名本质是指向第一个元素的指针intarr[5]={1,2,3};cout<<*arr<<endl;// 输出第一个元素:1(*arr等价于arr[0])
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 16:33:13

GB/T4996-2025相较于GB/T4996-2014版的核心区别如下

1. 名称与范围标准名称简化为《平托盘 试验方法》&#xff0c;删除 “联运通用”。适用范围扩展&#xff0c;不再限定公路、铁路、水路联运&#xff0c;覆盖所有平托盘设计、生产、检验及使用。2. 术语与定义更改 “平托盘”“额定载荷” 等 10 个术语定义&#xff0c;新增 “叉…

作者头像 李华
网站建设 2026/7/1 6:56:21

硕士博士论文AI率要求是多少?2026年标准及降AI攻略

硕士博士论文AI率要求是多少&#xff1f;2026年标准及降AI攻略 最近很多研究生问我&#xff1a;硕士/博士论文的AI率要求是多少&#xff1f; 各学校标准不完全一样&#xff0c;但大致范围是明确的。这篇文章帮你搞清楚2026年的标准&#xff0c;以及怎么达标。 2026年AI率标准…

作者头像 李华
网站建设 2026/7/1 6:49:41

Mutil-Agent的终极秘密武器:上下文工程(Context Engineering)

随着大语言模型&#xff08;LLM&#xff09;和代理框架的发展&#xff0c;人们越来越意识到「上下文」对代理行为的重要性。代理不仅需要用户的指令&#xff0c;还需要外部知识、工具反馈等信息才能完成复杂任务。所谓“上下文工程”就是在有限的上下文窗口内&#xff0c;为代理…

作者头像 李华
网站建设 2026/7/1 20:01:40

你的项目适合哪种架构?大模型4大应用模式深度解析与选择指南

过去一年&#xff0c;大模型彻底改变了我们对“智能”的认知。它不仅能生成文本、写代码、画图谱、出策略&#xff0c;甚至能承担起助理、客服、分析师等角色。但真正让大模型“落地”的关键&#xff0c;并不只是模型本身的强大&#xff0c;而在于它如何被用起来。 本篇文章&a…

作者头像 李华