数组与使用范围及循环变量不同的写法

简介: 数组与使用范围、下标、指针的for循环及循环变量不同的类型声明

直接看代码:

include

using namespace std;

define ROW 3

define COL 4

int main()
{
int ia[ROW][COL] = {0,1,2,3,4,5,6,7,8,9,10,11};
cout<<"利用范围for语句输出二维数组的内容:"<<endl;
for(int(&row)[COL]:ia)
{
for(int &col:row)
printf("%2d ",col);
cout<<endl;
}
cout<<"利用普通for语句和下标输出二维数组的内容:"<<endl;
for(int i=0;i<ROW;i++)
{
for(int j=0;j!=4;j++)
printf("%2d ",ia[i][j]);
cout<<endl;
}
cout<<"利用普通for语句和指针输出二维数组的内容:"<<endl;
for(int (p)[COL]=ia;p!=ia+ROW;p++)
{
for(int
q=p;q!=p+COL;q++)
printf("%2d ",*q);
cout<<endl;
}
return 0;
getchar();
}
也可以使用类型别名代替循环控制变量的类型,使得外层循环变量的含义更加直观:

include

using namespace std;

define ROW 3

define COL 4

using iac = int[COL];
int main()
{
int ia[ROW][COL] = {0,1,2,3,4,5,6,7,8,9,10,11};
cout<<"利用范围for语句输出二维数组的内容:"<<endl;
for(iac &row:ia) // 类型别名
{
for(int &col:row)
printf("%2d ",col);
cout<<endl;
}
cout<<"利用普通for语句和下标输出二维数组的内容:"<<endl;
for(int i=0;i<ROW;i++)
{
for(int j=0;j!=4;j++)
printf("%2d ",ia[i][j]);
cout<<endl;
}
cout<<"利用普通for语句和指针输出二维数组的内容:"<<endl;
for(iac p=ia;p!=ia+ROW;p++) // 类型别名
{
for(int
q=p;q!=p+COL;q++)
printf("%2d ",*q);
cout<<endl;
}
return 0;
getchar();
}
也可以使用auto关键字自动推断循环控制变量的类型,无需程序员显式指定,使得程序更加简洁直观,也降低了程序编写的难度:

include

using namespace std;

define ROW 3

define COL 4

using iac = int[COL];
int main()
{//代码效果参考:http://www.zidongmutanji.com/bxxx/12894.html

int ia[ROW][COL] = {0,1,2,3,4,5,6,7,8,9,10,11};
cout<<"利用范围for语句输出二维数组的内容:"<<endl;
for(auto &row:ia)
{
    for(auto &col:row)
        printf("%2d ",col);
    cout<<endl;
}
cout<<"利用普通for语句和下标输出二维数组的内容:"<<endl;
for(auto i=0;i<ROW;i++)
{
    for(auto j=0;j!=4;j++)
        printf("%2d ",ia[i][j]);
    cout<<endl;
}
cout<<"利用普通for语句和指针输出二维数组的内容:"<<endl;
for(auto p=ia;p!=ia+ROW;p++)
{
    for(auto q=*p;q!=*p+COL;q++)
        printf("%2d ",*q);
    cout<<endl;
}
return 0;
getchar();

}

相关文章
|
14天前
for循环嵌套for循环与递归的区别
for循环嵌套for循环与递归的区别
|
9月前
for循环语句写法
for循环语句写法
31 0
|
10月前
判断变量是否为数组的几种方法
判断变量是否为数组的几种方法
109 0
|
1月前
|
存储 Java 索引
【Java数组】数组定义 | 初始化赋值 | 数组练习题
【Java数组】数组定义 | 初始化赋值 | 数组练习题
|
11月前
|
前端开发 定位技术 数据格式
在嵌套函数中实现条件判断获取数组传值的方法
在嵌套函数中实现条件判断获取数组传值的方法
53 0
|
存储 C语言
数组的声明,定义,访问,循环遍历
int 表示该数组用来装 int 类型的元素,其他的形式就写其他的,例如:double [10]; a 是数组名字,是合法的c语言标识符即可; [ ] 是指示的作用,表示变量 a 是数组变量; 若没有[ ], 就是普通的整型变量。 10 表示该数组最多装10个int 类型数据,个数自定。
83 0
|
JavaScript 前端开发
使用语句 1 来初始化循环中所使用的的变量
使用语句 1 来初始化循环中所使用的的变量
51 0
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
123 0
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
复习C部分:1.什么是常量 2.初时字符串 3.初识转义字符 4.注释 5.初识选择语句 6.初识循环语句 7.初识函数和数组 8.初识操作符 9.初始操作符2
复习C部分:1.什么是常量 2.初时字符串 3.初识转义字符 4.注释 5.初识选择语句 6.初识循环语句 7.初识函数和数组 8.初识操作符 9.初始操作符2
83 0
复习C部分:1.什么是常量 2.初时字符串 3.初识转义字符 4.注释 5.初识选择语句 6.初识循环语句 7.初识函数和数组 8.初识操作符 9.初始操作符2
一个等号是赋值。两个等号是判断
一个等号是赋值。两个等号是判断
86 0
一个等号是赋值。两个等号是判断