C++|数组

什么是数组

一组同类型数据的有序集合/一段连续被等分的内存空间

一些名词

数组单元: 数组中的每个变量
数组元素: 数组单元的数据值
数组名: 这些同类变量聚合后统一的名字,首元素的内存地址

如何使用

先声明,后使用
引用: 只能引用数组元素,而非整个数组
作为函数参数时: 传送的是数组首地址(数组名)

存储

地址是连续的
二维数组存储: 按行存储
按行存储

初始化

加粗样式

int a[10];
int main()
{
	for (int i = 0; i < 10; i++)            //int全局数组不初始化默认为0
	{
		cout << a[i];
	}
	cout << endl;
 
	int c[10];
	for (int i = 0; i < 10; i++)            //局部数组不初始化,是随机值
	{
		cout << c[i];
	}
	cout << endl;

————————————————
版权声明:本文为CSDN博主「营养不良的红」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010497938/article/details/47613949

作为变量初始化

static int a[10]={0,1,2,3,4,5,6,7,8,9};//全部
static int a[10]={0,1,2,3);//一部分
static int a[]={1,2,3};//不写数组长度
static int a[2][3]={1,2,3,4,5,6};//全部赋值,按顺序赋值
static int a[][3]={1,2,3,4,5,6};//全部都有时,可以省略第一唯长度
static int a[2][3]={{1,2,3},{4,5,6}};//分行赋值
static int a[][3]={{1,2,3},{4,5,6}};//全部都有时,可以省略第一唯长度
static int a[2][3]={{1,2},{3}};//省略列中的一些元素


数组作为函数参数

void rowsum(int a[][4],int nrow) {//只有前面的维数可以省略
	.....
	}
int table[3][4] = { {1,2,3,4},{2,3,4,5},{3,4,5,6} };//声明初始化数组
rowsum(table,3);//函数形参为int a[][4],实参只用写数组名称(因为是首地址)
//
float linefit(const point p[], int np) {}//函数形参为数组
int main() {
	point p[2] = { point(1,2),point(3,4) };//创建类的对象数组并初始化
	float r = linefit(p, 2);//数组做函数的实参
	……}

补充: 形参是数组名时,编译系统转换为对应的指针类型

数组做为类中对象

初始化:有参数与无参数的写法

point a[2];//建立point类的数组对象a[2],数组中有两个元素;没有赋初始值xy,则调用缺省构造使得xy=0;且逐个元素构造函数
point b[2] = { point(1,2),point(3,4) };//666,对象数组的初始化

注意事项

编译不管是否越界

int score[30];
score[30]=88;//是错的,但不会报错

数组的地址

short tell[10];
cout<<tell;//&tell[0],第一个元素的地址
cout<<&tell;//整个数组的地址
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值