C++的一维数组和二维数组
2016-03-04 20:00
323 查看
数组(array)是一种数据格式,能够存储多个同类型的值。
一维数组:
int a[3]={1,2,3};
char a[10]="this is a";共有9个字符,包含空字符,a[9]将被系统自动赋值为'\0',定义字符数组,需要考虑到为最后的一个结束符'\0'预留出一个位置,
char数组还可以这样赋值:char a[10]={'t','h','i','s'};
上面两个数组都是在声明语句中初始化数组元素,若int a[5]={1,2,3},a[3]和a[4]将被系统自动初始化为0。
不允许int a[3];
a={1,2,3};
如果声明数组时没有初始化,则需要单独对每个元素赋值。
一维数组的数组名都是指针
int a[10]={0,1,2,3,4,5,6,7,8,9};
cout<<a<<endl;
结果将输出存储该数组的内存的首地址。
char a[10]="this is a";
cout<<a<<endl;
结果将输出this is a
动态分配数组将需要使用指针,例如:
int *a=new int[3]; //申请了一个数组
a[1]=1;
cout<<a[1]<<endl;
delete [] a; //将申请的内存释放
结果将输出1
二维数组:
二维数组其实就是数组的数组,即每个元素都是数组的数组。
int a[2][2]={1,2,3,4};
int a[2][2]={{1,2},{3,4}};
char week[7][4]={
"Mon","Tue","Wed","Thu","Fri","Sat","Sun"
};
cout<<week[0]<<endl;
结果输出Mon
二维指针数组动态分配
int **p;
p=new int*[10];
for(int i=0;i!=10;i++){
p[i]=new int[5]; //int*[10]表示一个有10个元素的指针数组
}
···
for(int i=0;i<10;i++){ //将申请的内存释放掉,这点很重要
delete [] p[i];
}
delete [] p;
一维数组:
int a[3]={1,2,3};
char a[10]="this is a";共有9个字符,包含空字符,a[9]将被系统自动赋值为'\0',定义字符数组,需要考虑到为最后的一个结束符'\0'预留出一个位置,
char数组还可以这样赋值:char a[10]={'t','h','i','s'};
上面两个数组都是在声明语句中初始化数组元素,若int a[5]={1,2,3},a[3]和a[4]将被系统自动初始化为0。
不允许int a[3];
a={1,2,3};
如果声明数组时没有初始化,则需要单独对每个元素赋值。
一维数组的数组名都是指针
int a[10]={0,1,2,3,4,5,6,7,8,9};
cout<<a<<endl;
结果将输出存储该数组的内存的首地址。
char a[10]="this is a";
cout<<a<<endl;
结果将输出this is a
动态分配数组将需要使用指针,例如:
int *a=new int[3]; //申请了一个数组
a[1]=1;
cout<<a[1]<<endl;
delete [] a; //将申请的内存释放
结果将输出1
二维数组:
二维数组其实就是数组的数组,即每个元素都是数组的数组。
int a[2][2]={1,2,3,4};
int a[2][2]={{1,2},{3,4}};
char week[7][4]={
"Mon","Tue","Wed","Thu","Fri","Sat","Sun"
};
cout<<week[0]<<endl;
结果输出Mon
二维指针数组动态分配
int **p;
p=new int*[10];
for(int i=0;i!=10;i++){
p[i]=new int[5]; //int*[10]表示一个有10个元素的指针数组
}
···
for(int i=0;i<10;i++){ //将申请的内存释放掉,这点很重要
delete [] p[i];
}
delete [] p;
相关文章推荐
- C++学习笔记:类型转换dynamic)cast和reinterpret_cast
- C++ Primer 第五版 中文版 练习 13.26
- C++回调机制
- C++ 虚函数表解析(难点*)
- C++模板的原理与应用
- 【POJ 2778】DNA Sequence 中文题意&题解&代码(C++)
- 【VS开发】C语言遍历文件夹
- C语言之多线程机制(程序可以同时被执行而不会相互干扰)
- C语言之多线程机制(程序可以同时被执行而不会相互干扰)
- C语言之多线程机制(程序可以同时被执行而不会相互干扰)
- 深入理解C++中的mutable关键字
- c++复制构造函数实例
- c++操作符
- C++中类所占内存空间的分析(转载)
- c++学习
- 【转】c++继承:公有、私有、保护
- C++入门学习——标准模板库之vector
- c++中const的用法,含义,好处
- 函数与程序结构【重学C之四】
- C++之常指针,指针常量,函数指针,const用法总结