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 }