参考 http://blog.youkuaiyun.com/da1954ping/article/details/8043815
代码
#include <iostream>
using namespace std;
//顺时针输出二维数组
void printMatrix(int a[][5],int row)
{
//cout << "size of a ="<< sizeof(a)<<endl;
//cout << "size of a[0] =" << sizeof(a[0]) <<endl;
//列数,第二维度长度
//cout << sizeof(a[0])/sizeof(int) << endl;
int left=0;
int column=sizeof(a[0])/sizeof(int);
//行数,第一维长度
//cout << sizeof(a)/sizeof(a[0]) <<"-----" << endl;
int low=0;
//int row=sizeof(a)/sizeof(a[0]);
while(left<column && low<row)
{
for(int i=left;i<column;i++)
{
cout << a[low][i] << " ";
}
low++;
for(int j=low;j<row;j++)
{
cout << a[j][column-1] << " ";
}
column--;
for(int i=column;i>left;i--)
{
cout << a[row-1][i-1] << " ";
}
row--;
for(int j=row;j>low;j--) {
cout << a[j-1][left] << " ";
}
left++;
}
cout << endl;
}
int main()
{
int a[4][5]={
{1, 2, 3, 4, 5},
{14,15,16,17, 6},
{13,20,19,18, 7},
{12,11,10, 9, 8}
};
printMatrix(a,4);
// a 80
// a[0] 20
return 0;
}