多维数组定义使用

严格来说,C++语言中没有多维数组,多维数组其实就是数组的数组.
对于二维数组来说,常把第一个维度称为行,第二个维度称为列.
1.多维数组的初始化
允许用花括号括起来的一组值初始化多维数组.

int a[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};    //初始化3行4列的数组
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};      //内层括号可以不需要,和上个一样
int a[3][4] = {{0},{4},{8}};        //初始化每行的首元素
int a[3][4] = {0,1,2,3};        //初始化第一行

2.多维数组的下标引用
可以使用下标运算符访问多维数组,每个维度代表一个下标.
如果表达式下标数量和维度相等,则表示具体元素.如果下标数量小于维度,则代表内层数组.

3.使用范围for语句处理多维数组

size_t cnt = 0;
for(auto &row : ia)         //外层数组元素
    for(auto &col : row)            //内层数组元素
    { 
        col = cnt;
        ++cnt;
    }

要使用范围for语句处理多维函数,除了最内层的循环外,其他所有循环的控制变量都应该为引用类型.这样是为了避免数组自动转化为指针.

for(auto row : ia)      //编译出错
    for(auto col : row)

因为row不是引用类型,所以编译器初始化row时会自动将这些数组形式的元素转化成指向该数组内首元素的指针,这样row的类型为int*,所以内层循环就不合法了.
4.指针和多维数组
当程序使用多维数组的名字时,会自动转换为指向数组首元素的指针,因为多维数组是数组的数组,所以由多维数组转化来的指针实际上是指向第一个内层数组指针.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值