#include <stdio.h> int main() { int arr[4][4] ={0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15}; int i; for(i=0;i<4;i++) { printf("使用arr+i求得二维数组arr第%d行的起始地址为:%d\n",i+1,arr+i); } printf("\n"); for(i=0;i<4;i++) { printf("使用arr[i]求得二维数组arr第%d行的起始地址为:%d\n",i+1,arr[i]); } printf("\n"); for(i=0;i<4;i++) { printf("使用*(arr+i)求得二维数组arr第%d行的起始地址为:%d\n",i+1,*(arr+i)); } printf("\n"); for(i=0;i<4;i++) { printf("使用&arr[i]求得二维数组arr第%d行的起始地址为:%d\n",i+1,&arr[i]); } printf("\n"); return 0; }
#include <stdio.h> int main() { int arr[4][4] ={0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15}; int (*p1)[4]; //数组指针 int *p2[4]; //指针数组 int i,j,k; p1 = arr; printf("使用数组指针的方式访问二维数组arr\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("arr[%d][%d]=%d\t",i,j,*((*p1+i)+j)); } printf("\n"); } printf("使用指针数组的方式访问二维数组arr\n"); for(k=0;k<4;k++) p2[k] = arr[k]; for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("arr[%d][%d]=%d\t",i,j,*(p2[i]+j)); } printf("\n"); } return 0; }
原文地址:http://blog.csdn.net/huolang_vip/article/details/44198785