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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010742342/article/details/56679564

最近在学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来进行自动推断

























展开阅读全文

没有更多推荐了,返回首页