C++基础学习(五)之数组
一维数组
1 声明数组
type arrayName[arraySize];
例如: double a[10];
2 数组初始化
double a[5] = { 1, 2, 3, 4, 5 } //()内的元素个数要小于[]内的数字 //或者 double a[] = { 1, 2, 3, 4, 5 } //或者 double a[5]; a[4] = 5; //在此之前需要声明
多维数组
type arrayName[arraySize1][arraySize2]...[arraySizeN];
例如 double b[5][5][9];
二维数组
int b[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; //或者 int b[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
数组的应用
1 指向数组的指针
以数组声明 double c[5]; 为例,数组名是指向数组中第一个元素的常量指针,即 c 是指向 &c[0] 的指针
double *p; double c[5]; p = c; //将c的第一个元素地址赋值给p
*(c + 3) 指向 c[3] ,也是合法使用的;所以可以用*p、*(p + 1)、*(p + 2)等来访问数组 c
2 传递数组给函数
通过指定不带索引的数组名来传递一个指向数组的指针,以下三种方式来声明形式参数:
void function(int *param) //参数是一个指针 { ... }
void function(int param[10]) //参数是一个指定大小的数组 { ... }
void function(int param[]) //参数是一个未定义大小的数组 { ... }
调用函数,实参利用数组名
... void function(int p[]); //声明 ... int a[10]; ... function(a); //调用 ...
3 从函数中返回数组
通过指定不带索引的数组名来返回一个指向数组的指针;
如果想要从函数中返回一个一位数组,必须先声明一个返回指针的函数;
int * function() { ... }
此外,C++不支持在函数外返回局部变量的地址,除非定义局部变量为static变量,如下:
#include<iostream> using namespace std; int * function() { static int r[10]; ... //对r数组初始化 return r; } int main() { int *p; p = function(); ... return 0; }
作者:HaijianYang
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理