c++四种打印二维数组的风格

最近在学c++ 总结了一下这几种打印方式

int ia[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

数组本尊在此

1.完全c风格的输出二维数组
p指向含有四个整数的数组,则*p就是那个数组,而数组名就是数组首元素的指针,所以*p即为p所指向的那个数组的首元素的指针
 for(int(*p)[4]=ia;p!=ia+3;++p){//注意是!=而不是<
        for(int  *q=*p;q!=*p+4;++q){
           cout<<*q<<' ';
        }
        cout<<endl;
    }



2.c++风格
for ( auto p = begin(ia) ; p != end(ia); ++p) {   //用begin()和end()来替代手工的控制变量
               for ( auto q = begin(*p); q != end(*p); ++q ) {
                  cout<<*q<<' ';
               }
       cout<<endl;
   }




3.使用了类型别名的c风格
using int_array=int[4];
//typedef int int_array[4];//等价上一语句
for(int_array *p=ia;p!=ia+3;++p){
        for(int *q=*p;q!=*p+4;++q){
            cout<<*q<<' ';
        }
        cout<<endl;
    }


4.使用范围for的方式(p指向的是包含了四个int的数组)
for(int (&p)[4]:ia){ //除了最内层随意之外,外层的for都必须用&(引用方式),如果没有&那么会被
         编译器把p(数组名字)自动转化为指向数组首元素的指针。最内层引用与否要看需不需要改变数组内容
        for(int &q:p){
            cout<<q<<' ';
        }
        cout<<endl;
    }

注:这些代码中的类型可以用auto来进行自动推断

























  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值