c++入门教程(十二)
来源:互联网 发布:软件项目招标网 编辑:程序博客网 时间:2024/06/07 21:52
前面第三节我们提到了变量,就是一个变化的量,是内存中的一块空间,比如我们可以用它来存放一个人的年龄 如 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维数组 用法类似,可以试试哦
- C语言入门教程 (二十二) 文件操作基本常识
- c++入门教程(十二)
- C语言入门教程 (十二) 变量的作用域和存储类型
- ExtJs 入门教程十二[监听器:listeners]
- SDL入门教程(十二):音乐和音效
- SDL入门教程(十二):音乐和音效
- ExtJs 入门教程十二[下拉列表联动:Combobox_Two]
- Picasso入门教程(十二)Cache Indicators,Logging & Stats
- OPENCV入门教程十二:blur均值平滑
- RabbitMQ入门教程(十二):消息确认Ack
- c++Primer,十二,类
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Object-C 入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- java网络编程(TCP\UDP)
- C 实现英语句子翻转 单词字母顺序不变(i love you -----> you love i)
- ssm
- 《ECMAScript 6入门》笔记6
- 长连接和端连接 心跳包机制
- c++入门教程(十二)
- 通用程序设计
- IOC与DI的浅显易懂的理解
- Postfix邮件服务
- ActivityMQ应用详解
- 43. Multiply Strings
- 用NetBalancer模拟网络超时或者差网络状态来测试MQTT协议
- 启动线程的五种方式
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)