多维数组与指针 用指针可以指向一维数组,同样也 可以指向多维数组中的元素 1.二维数组元素的地址 可以将二维数组理解为“数组的数组” 例如 inta[2][3]={(1,2,3)(4,5,6)} 可以理解成为两个一维数组,每个 数组由三个元素组成
多维数组与指针 用指针可以指向一维数组,同样也 可以指向多维数组中的元素 1.二维数组元素的地址 可以将二维数组理解为“数组的数组” 例如: int a[2][3]={(1,2,3),(4,5,6)}; 可以理解成为两个一维数组,每个 数组由三个元素组成
多维数组与指针 两个一维数组的起始地址分别是: 第一行元素的起始地址:a[0] 第二行元素的起始地址:a[1] 注意:在二维数组中,a[0],a1]所表示 的并不是一个元素,而是每行的第一个 元素的地址
多维数组与指针 两个一维数组的起始地址分别是: 第一行元素的起始地址:a[0]; 第二行元素的起始地址:a[1]; 注意:在二维数组中,a[0],a[1]所表示 的并不是一个元素,而是每行的第一个 元素的地址
多维数组与指针 在上述二维数组中,每个元素用指 针的表示形式为: *(a[订+) 其中a[表示二维数组第I行的起始地址 j是二维数组第j列的偏移,所以a[+表 示的就是元素a订订的地址,而*a[j+j) 就表示该元素的值
多维数组与指针 在上述二维数组中,每个元素用指 针的表示形式为: *(a[i]+j); 其中a[i]表示二维数组第I行的起始地址 j是二维数组第j列的偏移,所以a[i]+j表 示的就是元素a[i][j]的地址,而*(a[i]+j) 就表示该元素的值
多维数组与指针(程序一) #include <stdio.h> #include <stdlib.h> maino int a314],p, i-l, for(=0j<3j++) for(p=all; p<all+4; p++, 1++) p
多维数组与指针(程序一) #include <stdio.h> #include <stdlib.h> main() { int a[3][4],*p,i=1,j; for(j=0;j<3;j++) { for(p=a[j];p<a[j]+4;p++,i++) { *p = i;
多维数组与指针(程序一) for(=0j<3j++) for(p=alil p<a0]+4; p++, i++) printf(%03d"*p) printf("n system("pause): 1
多维数组与指针(程序一) } } for(j=0;j<3;j++) { for(p=a[j];p<a[j]+4;p++,i++) { printf("%3d",*p); } printf("\n"); } system("pause");}