「C语言」「算法」访问数组的多种形式

「C语言」「算法」访问数组的多种方式
 1 #include <stdio.h>
 2 
 3 //分别用数组名和指针变量,以下标法和指针法输入和输出数组的所有元素 
 4 
 5 int main(){
 6     int i=0;
 7     int array[6];
 8     int *p=array;
 9     printf("\n Please input array[6]: \n");
10     while(p<(array+6))
11         scanf("%d",p++);
12     printf("\n Output array[i]: \n"); 
13     for(i=0;i<6;i++)/* (1)数组名,下标法 */
14         printf("%d,",array[i]);
15     printf("\n Output *(array+i): \n"); 
16     for(i=0;i<6;i++)/* (2)数组名,指针法 */
17         printf("%d,",*(array+i));
18     printf("\n Output p[i]: \n");
19     p=array; 
20     for(i=0;i<6;i++)/* (3)指针变量,下标法 */
21         printf("%d,",p[i]);
22     printf("\n Output *(p+i): \n");
23     for(i=0;i<6;i++)/* (4)指针变量,指针法 */
24         printf("%d,",*(p+i));
25     printf("\n Output *p++: \n");
26     while(p<(array+6))/* (5)指针变量,指针法,效率最高 */
27         printf("%d,",*p++);
28     printf("\n");
29     return 0;
30 }

 

 1 #include <stdio.h>
 2 
 3 //输出二维数组的分数组和元素的地址 
 4 
 5 int main(){
 6     int i=100,j=200,k=300;
 7     int b[3][5]={{31,32,33,24,25},{16,17,8,9,10},{19,11,51,14,15}};
 8     printf("&i=%X    &j=%X    &k=%X\n",&i,&j,&k);
 9     printf("b=%X    b+1=%X    b+2=%X\n",b,b+1,b+2);
10     printf("b[0]=%X    b[0]+1=%X    b[0]+2=%X\n",b[0],b[0]+1,b[0]+2);
11     printf("b[1]=%X    *(b+1)=%X    &b[1][0]=%X\n",b[1],*(b+1),&b[1][0]);
12     printf("b[2][4]=%d    *(*(b+2)+4)=%d\n",b[2][4],*(*(b+2)+4));
13     return 0;
14 }