黑马程序员技术交流社区
标题: 利用数组名、普通指针、二维数组指针访问二维数组。 [打印本页]
作者: wangchao1992 时间: 2015-8-12 15:34
标题: 利用数组名、普通指针、二维数组指针访问二维数组。
利用数组名访问二维数组
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
for (int i=0; i<3; i++) {
for (int j=0; j<4; j++) {
//a+1 第二行的首地址
// *(a+1)== &a[1][0] 第二行第一个元素的首地址
//(*(a+1)+1)==&a[1][1] 第二行第二个元素的地址
// * ( * ( a + 1) + 1 )==a[1][1] 第二行第二个元素的值
printf("%d\t",*(*(a+i)+j));
}
printf("\n");
}
return 0;
}
利用普通指针访问二维数组
#include <stdio.h>
int main(int argc, const char * argv[]) {
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int *p = a;//定义普通指针
for(int i =0;i<12;i++){
//数组在内存中存储是连续的
printf("%d\t",*(p+i));
}
return 0;
}
利用二维数组指针访问二维数组
include <stdio.h>
int main(int argc, const char * argv[]) {
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
//定义二维数组指针
//二维数组指针可以替代数组名去使用
int (*p)[4] = a;
for (int i=0; i<3; i++) {
for (int j=0; j<4; j++) {
//遍历数组
printf("%d\t",*(*(p+i)+j));
}
printf("\n");
}
return 0;
}
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |