c++入门教程(十二)

前面第三节我们提到了变量,就是一个变化的量,是内存中的一块空间,比如我们可以用它来存放一个人的年龄 如  int age = 18;

但是  如果 是要存一个班级的年龄呢  那可能就需要30个变量  int age1 = 18,age2 = 19,age3 = 16 ......age30 = 16;这样如果把整个大学的学生的年龄都存起来可能就需要几万个变量,如果这样一个个的声明定义 可能会死人   [口怕.jpg]

于是 c++对于一组类型相同的变量提供了一种快速声明的操作,叫做  数组。使用方式如下

类型  数组名[变量个数]

这样子我们的30个变量就很好说了,直接一句     int age[30];     搞定

前面我们说过声明变量就是在内存里要了一块空间,这里可以看作是要了30个连续的 int类型大小的空间 大概长这样子(手有点残,实际上小格子空间是一样大的)



然后这里的内容可能有点 不好理解  ,请充分发挥想象力

既然有了30个变量了,我们就要分别使用了,具体使用这组数据中的哪一个需要使用      数组名[变量序号]         的方式获取。

所以,这30个变量的名字分别叫作 a[0](注意,是从0开始的) ,a[1], a[2], a[3].......a[26] , a[27],  a[28], a[29]   (0~29刚刚好30个数字)  

既然是30个变量了,那么就应该有办法给它们一个值。

在c++中给变量赋值的方式有两种,一种就是一个一个的去赋值 

类似 age[0] = 16;  age[1] = 18; .......age[29]=16;  当然也可以分别输入  类似 cin>>age[0]>>age[2]>>age[1]>>.....>>age[29];(然后我们惊喜的发现 这里居然可以使用循环 开心)

#include <iostream>
using namespace std;

void main(){
	int age[10];
	for(int j=0;j<10;j++){
		cin>>age[j];
	}
	for(int i=0; i<10; i++){
		cout<<"age["<<i<<"]="<<age[i]<<endl;
	}
}



还有一种就是在声明数组的时候用直接赋值,所有值用逗号分隔,并用大括号把所有值括起来(注意:只有声明的时候可以用这种方法,之后就不可以了)

int age[30] = {15,17,16,.....16,16};    

#include <iostream>
using namespace std;

void main(){
	int age[10] = {16,15,17,16};
	
	for(int i=0; i<10; i++){
		cout<<"age["<<i<<"]="<<age[i]<<endl;
	}
}

后面的那些0 是默认值。



char abc[10] = {'a','b','c','f','t'};(这里abc[0] 到 abc[4]  分别是  'a' , 'b',  'c'  ,  'f' ,  't'   后面那些没有赋初值的都是默认值)

#include <iostream>
using namespace std;

void main(){
	char abc[10] = {'a','b','c','f','t'};
	
	for(int i=0; i<10; i++){
		cout<<"abc["<<i<<"]="<<abc[i]<<endl;
	}
}


然后,对于字符数组还有种简单的初始化方式  char abc[10] = "abcft";(这里和上一句效果相同)

#include <iostream>
using namespace std;

void main(){
	 char abc[10] = "abcft";
	
	for(int i=0; i<10; i++){
		cout<<"abc["<<i<<"]="<<abc[i]<<endl;
	}
}


刚刚我们试过了在定义了一个整型的数组(在数组里面放整数)和字符型数组(在数组里面放字符)   然后  要不要试试在数组里面放数组[手动滑稽]

数组的数组  的语法如下

类型  数组名[变量行数][每行列数]     可以看作是     (类型  数组名[变量行数])[每行列数] 

然后这货长这样


使用方法和上面类似

初始化从[0][0]开始先行后列

#include <iostream>
using namespace std;

void main(){
	int age[3][4]={1,2,3,4,5,6};
	
	
	for(int i=0; i<3; i++){
		for(int j=0;j<4;j++){
			cout<<"age["<<i<<"]["<<j<<"]="<<age[i][j]<<endl;
		}
		
	}
}

像数组一样初始化  首先把每个数组当成一个元素,然后再分别放入每个数组的元素(从上面行到下面行,每行从左到右)

#include <iostream>
using namespace std;

void main(){
	int age[3][4]={{1,2,3},{4,5},{6}};
	
	
	for(int i=0; i<3; i++){
		for(int j=0;j<4;j++){
			cout<<"age["<<i<<"]["<<j<<"]="<<age[i][j]<<"    ";
		}
		cout<<endl;
	}
}


循环的方式赋值

#include <iostream>
using namespace std;

void main(){
	 int age[3][4];
	 for(int a=0;a<3;a++){
		 for(int b=0;b<4;b++){
			 age[a][b] = a*b;
		 }
	 }
	
	for(int i=0; i<3; i++){
		for(int j=0;j<4;j++){
			cout<<"age["<<i<<"]["<<j<<"]="<<age[i][j]<<endl;
		}
		
	}
}


刚刚讲到的只有一行的称为 一维数组,数组的数组也称为 二维数组,类似还有  三维数组,四维数组。。。。n维数组  用法类似,可以试试哦

    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值