多维数组的遍历

在C语言中,只存在“一维数组”,这是对于C编译器而言。在C语言的语法规则中,毋庸置疑,是可以使用多维数组的。

1.一维数组的遍历:

可以定义如下一维数组并初始化:

                int arr[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};

我们可以使用数组名(arr)和下标(0-9)来引用数组中的元素:比如,arr[0]和arr[1]就表示内存值0x01和0x02。实际上0[arr]和1[arr]同样表示内存值0x01和0x02,尽管这种引用数组元素的方式比较少见,却是合法的。

原 因在于C编译器在处理数组元素时,是通过指针的方式来引用,即arr[0]被编译器转换为*(arr+0),arr[1]被转换为*(arr+1);同样 的处理方式,0[arr]和1[arr]被编译器转换为*(0+arr)和*(1+arr).显然,因为加法交换律的保证,*(arr+0)与* (0+arr)是相同的表达式,而*(arr+1)与*(1+arr)也是相同的表达式。

于是,遍历一维数组有可以如下2种方式:

方式(1):

int cnt;

int arr[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};

for(cnt=0;cnt<10;cnt++)

{

  printf("%d\n",arr[cnt]);

}

方式(2):

int *parr=NULL;

int arr[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};

for(parr=arr;parr<arr+10;parr++)

{

  printf("%d\n",*parr);

}

依照上述的方法,可以写出遍历多维数组的方法,以二维数组,三维数组,四维数组为例,来演示具体如何操作。

2.二维数组的遍历

可以定义如下二维数组并初始化:

int arr[3][4]={  0x01,0x02,0x03,0x04,

0x05,0x06,0x07,0x08,

0x09,0x0a,0x0b,0x0c

};

方式(1):

int row,col;

for(row=0;row<3;row++)

for(col=0;col<4;col++)

{

printf("%d\n",arr[row][col]);

}

方式(2):

int*p1=NULL;

int*p2[4]=NULL;

for(p2=arr[0];p2<arr[0]+4;p2++)

for(p1=*p2;p1<*p2+3;p1++)

{

printf("%d\n",*p1);

}

时间: 2024-10-29 00:23:44

多维数组的遍历的相关文章

thinPHP中多维数组的遍历

$drug=array( 'ACEI'=>array(array('ch_name'=>'卡托普利','en_name'=>'captopril'),array('ch_name'=>'依那普利','en_name'=>'enalapril'), array('ch_name'=>'赖诺普利','en_name'=>'lisinopril')), 'ARB'=>array(array('ch_name'=>'依普罗沙坦','en_name'=>'

23:二维数组回形遍历

23:二维数组回形遍历 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组.如图所示: 输入 输入的第一行上有两个整数,依次为row和col.余下有row行,每行包含col个整数,构成一个二维整数数组.(注:输入的row和col保证0 < row < 100, 0 < col < 100) 输出 按遍历顺序输出每个整数.每个

二维数组的遍历之查漏补缺

//二维数组的遍历public class Test10 { public static void main(String[] args) { int arr[][]={{1,2,3},{4,5},{6,7,8,9}}; for(int x=0;x<arr.length;x++){ for(int y=0;y<arr[x].length;y++){ System.out.print(arr[x][y]+"\t"); } System.out.println(); } }}

二维数组的遍历

方法1: 1 /************************************************************************* 2 > File Name: ptrmulti.c 3 > Author: Mr.Yang 4 > Purpose:使用指针来将数组传递给函数 5 > Created Time: 2017年06月04日 星期日 08时51分15秒 6 *******************************************

对二维数组的遍历求和

二维数组的遍历,求和 int [] [] s = {{1,2,3,4},{5,6,7,8,3,3},{9,10,11,12}}; int sum=0; for (int i = 0; i < s.length; i++) { for (int j = 0; j < s[i].length; j++) { sum+=s[i][j]; } } System.out.println(sum); Console:84; 原文地址:https://www.cnblogs.com/fengxia/p/10

数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结

1. 数组的三种声明方式 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] test1 = new String[6]; test1[0] = "数组0"; test1[1] = "数组1"; //第二种 例: String[] test2 = {"数组0","数组1","数组2","

数组的三种方式总结、 多维数组的遍历及 Arrays类的常用方法总结

一.数组的三种方式总结 1.创建数组 Java语言使用new操作符来创建数组,语法如下: arrayRefVar = new dataType[arraySize]; 上面的语法语句做了两件事: 一.使用 dataType[arraySize] 创建了一个数组. 二.把新创建的数组的引用赋值给变量 arrayRefVar. 数组变量的声明,和创建数组可以用一条语句完成,如下所示: dataType[] arrayRefVar = new dataType[arraySize]; 另外,你还可以使

多维数组的遍历性能

数组是Java中的一种容器对象,它拥有多个单一类型的值.当数组被创建的时候数组长度就已经确定了.在创建之后,其长度是固定的.下面是一个长度为10的数组: public class ArrayDemo { private int arraySize=10; public int[] arrayOfIntegers = new int[arraySize]; } 上面的代码是一维数组的例子.换句话说,数组长度只能在一个方向上增长.很多时候我们需要数组在多个维度上增长.这种数组我们称之为多维数组.为简

Undefined offset原因以及解决办法-php利用for遍历二维数组方法-二维数组怎么遍历

<?php $arr3 = [ [1,2,3], [4,5,6,7], [8,9,10,11,12], ]; $len = count($arr3); $num2 = 0; $zong = 0; for($i = 0; $i < $len; $i++) { $tem = $arr3[$i]; $len2 = count($tem); for($j = 0; $j < $len2; $j++) { $num2 += $tem[$j]; $zong++; } } echo "<