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

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

}

相关文章
|
1月前
解构赋值时如果数组元素的值是嵌套对象,如何进行解构赋值?
【10月更文挑战第30天】可以灵活地对数组中包含嵌套对象的元素进行解构赋值,根据具体的需求提取出所需的值,从而使代码更加简洁、清晰,提高代码的可读性和可维护性。
|
5月前
|
语音技术 Python
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
语音识别,range语句,range语句=生成数字序列,for循环临时变量作用域,for循环临时变量作用域,for循环的变量作用域只能在for内部用,for循环的嵌套使用,for循环打印九九乘法表
|
7月前
|
存储 Python 容器
python函数的返回值、嵌套方式以及函数中的变量(一)
python函数的返回值、嵌套方式以及函数中的变量(一)
259 2
|
7月前
|
Python
python函数的返回值、嵌套方式以及函数中的变量(二)
python函数的返回值、嵌套方式以及函数中的变量(二)
249 1
判断变量是否为数组的几种方法
判断变量是否为数组的几种方法
165 0
|
7月前
|
存储 Java 索引
【Java数组】数组定义 | 初始化赋值 | 数组练习题
【Java数组】数组定义 | 初始化赋值 | 数组练习题
|
编译器 C语言 C++
学C的第十六天【操作符详解:9. 条件操作符;10. 逗号表达式;11. 下标引用,函数调用和结构函数;12.表达式求值:整型提升、算术转换、操作符的属性;练习:使用函数完成整型函数的打印、元素逆置】-2
12.表达式求值 1. 表达式求值的顺序一部分是由操作符的优先级和结合性决定。 2. 有些表达式的操作数在求值的过程中可能需要转换为其它类型。
110 0
|
前端开发 定位技术 数据格式
在嵌套函数中实现条件判断获取数组传值的方法
在嵌套函数中实现条件判断获取数组传值的方法
81 0
|
存储 C语言
数组的声明,定义,访问,循环遍历
int 表示该数组用来装 int 类型的元素,其他的形式就写其他的,例如:double [10]; a 是数组名字,是合法的c语言标识符即可; [ ] 是指示的作用,表示变量 a 是数组变量; 若没有[ ], 就是普通的整型变量。 10 表示该数组最多装10个int 类型数据,个数自定。
105 0

热门文章

最新文章