C++二维数组可以看作一个表格,横向为表格的行,纵向为表格的列,数组定义时行号在前,列号在后。二维数组的定义格式为: 数据类型 数组名[常量行表达式][常量列表达式]。
二维数组的元素是按先行后列的顺序存放的,例如,定义一个int a[3][2]的数组,其形式为:
a[0][0] | a[0][1] |
a[1][0] | a[1][1] |
a[2][0] | a[2][1] |
可以看到数组的索引是从0开始的,而不是1。其存储结构示意图如下:
0 | a[0][0] |
1 | a[0][1] |
2 | a[1][0] |
3 | a[1][1] |
4 | a[2][0] |
5 | a[2][1] |
二维数组的初始化方法:
1.在二维数组定义的同时,将所有数据写在一个{}中,并以逗号隔开,按顺序给元素赋值(不一定要列出所有元素的要被赋予的值,可以只列出一部分(n个数据),C++默认其为数组前n个元素将被赋予的值,而后面的元素会被C++默认初始化为0)。
全部赋值:
int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
文章来源地址https://www.toymoban.com/news/detail-521299.html
部分赋值:
int a[3][4] = { 1,2,3,4,5,6,7,8,9,10 };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
2.分行给二维数组赋值,即也是将所有数据写在一个{}中,在其内部,在把属于同一行的数据用{}括起来,数据之间用逗号隔开 。对于每一行的元素也不必全部赋值,可以只给某一行的前几个元素赋值,如果对二维数组中间或前面行的所有元素都不初始化,但每一行对应的{}必须列出,即使里面没有任何数据;如果对二维数组的最后行的所有元素都不初始化,则其对应的{}可以列出,也可以不列出,但最外层{}内的{}数量不能超过数组的行数。
全部赋值:
int a[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
部分赋值(1):
int a[3][4] = { {1},{5,6,7},{9,10} };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
部分赋值(2):
int a[3][4] = { {1,2,3,4},{}, {5,6,7,8} };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
3.二维数组初始化后,利用下标和两个for循环赋值:
int a[3][4];
int k=1;//定义一个常数,为数组赋值,当然也可以通过键盘赋值
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = k;
k++;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
3.利用二维数组的指针性质赋值。对于C++二维数组如int a[3][4] ,a[0]就是整个数组第一个元素(也是第一行第一个元素)的指针,a[1]是第二行第一个元素的指针,以此类推。这样就可以根据指针性质对二维数组进行赋值(注意:用指针性质对二维数组赋值时,不建议初始化赋值,一般是对于已经初始化后的数组进行数组元素值得改变赋值)。
实例1:
int a[3][4] = { 0,0,0,0,0,0,0,0,0,0,0,0 };//先随便初始化,后面好利用指针对元素改变赋值
int k=1;//定义一个常数,为数组赋值,当然也可以通过键盘赋值
for (int i = 0; i < 12; i++) {
*(a[0] + i) = k;
k++;
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
实例2:
int a[3][4] = { 0,0,0,0,0,0,0,0,0,0,0,0 };//先随便初始化,后面好利用指针对元素改变赋值
int k=1;//定义一个常数,为数组赋值,当然也可以通过键盘赋值
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
*(a[i] + j) = k;
k++;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << ' ';
}
}
文章来源:https://www.toymoban.com/news/detail-521299.html
感谢阅读!
到了这里,关于C++二维数组的初始化赋值及示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!