C++基础语法五-数组

这篇博客介绍了C++中的数组基础知识,包括元组个数的理解,如何正确初始化数组,解释了数组默认值的问题,以及二维数组的定义和初始化方法。文中特别强调了在定义数组时,常量表达式的重要性,以及通过sizeof运算符获取数组元素个数的方法。同时,还探讨了函数内外部数组的区别及其默认初始值。

1、元组个数

数组的定义格式为:
类型名 数组名 [常量表达式]
要注意一点,常量表达式里的值代表数组的个数,并不表示最大的下标值。

例如

int a[5];

代表只能访问里面的[0]-[4]

其中,常量表达式里只要是整数或者整数子集就可以、

例如:

 int a['a'];

表示int a[97];

但是遇到这样的:

int n=100;
int a[n];

就会出现编译错误,因为在给n赋值的时候,改变了变量的性质。变量性质就是具有空间占用的可访问实体,编译每次碰到一个变量名就对应一个访问空间的操作。因此,int a[n]实际上在运行时才能读取到n的值。才能确定其大小。这与数组定义相违背。

改正方案:

const int n=100;
int a[n];

2、初始化

int a[5]={1,2,3,4,5,6};//错,初始值个数多了
int a[5]={1,,3,4,5};//错,必能以逗号的方式省略
int a[2]={};//错,不能为空。
int a[3]={1,2,3};//ok;
int a[]={1,2,3,4,5};//ok
char c[6]={"hello"}
char c[5]={'h','e','l','l','o'}
char c[6]="hello"

遍历数组时,可以用sizeof(a)/sizeof(a[0])表示数组中元素个数。

3、默认值问题:

#include<iostream>
using namespace std;
int a1[5]={1,2,3};
int a2[5];
int main ()
{
	int a3[5]={2};
	int a4[5];
	cout<<"a1";
	for(int i=0;i<5;++i)
		cout<<a1[i]<<" ";
	cout<<"\n a2";
	for(int i=0;i<5;++i)
		cout<<a2[i]<<" ";
	cout<<"\n a3";
	for(int i=0;i<5;++i)
		cout<<a3[i]<<" ";
	cout<<"\n a4";
	for(int i=0;i<5;++i)
		cout<<a4[i]<<" ";
	cout<<"\n";
}

输出结果:
1 2 3 0 0
0 0 0 0 0
2 0 0 0 0
1245072 845597673 0 0 4298406

说明:函数外部的数组在整个程序中起作用,驻于全局数据区,初始值为0.函数内部则为乱码。

4、二维数组

定义:
int a[3][5];
初始化:
int a[3][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};

遍历问题:

int a[2][3]
for(i=0;i<2;++i)
	for(j=0;j<3;++j)
	cout<<a[i][j];
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值