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

简介: 数组与使用范围、下标、指针的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();

}

相关文章
|
4月前
|
语音技术 Python
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
|
6月前
|
存储 Python 容器
python函数的返回值、嵌套方式以及函数中的变量(一)
python函数的返回值、嵌套方式以及函数中的变量(一)
241 2
|
6月前
|
Python
python函数的返回值、嵌套方式以及函数中的变量(二)
python函数的返回值、嵌套方式以及函数中的变量(二)
243 1
判断变量是否为数组的几种方法
判断变量是否为数组的几种方法
146 0
|
6月前
|
存储 Java 索引
【Java数组】数组定义 | 初始化赋值 | 数组练习题
【Java数组】数组定义 | 初始化赋值 | 数组练习题
|
前端开发 定位技术 数据格式
在嵌套函数中实现条件判断获取数组传值的方法
在嵌套函数中实现条件判断获取数组传值的方法
76 0
|
存储 C语言
数组的声明,定义,访问,循环遍历
int 表示该数组用来装 int 类型的元素,其他的形式就写其他的,例如:double [10]; a 是数组名字,是合法的c语言标识符即可; [ ] 是指示的作用,表示变量 a 是数组变量; 若没有[ ], 就是普通的整型变量。 10 表示该数组最多装10个int 类型数据,个数自定。
99 0
|
JavaScript 前端开发
使用语句 1 来初始化循环中所使用的的变量
使用语句 1 来初始化循环中所使用的的变量
60 0
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
154 0
求字符串的长度(4种写法)(普通写法,函数写法(两种:有无返回值),不允许创建临时变量法(递归))
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
83 0
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己