数组指针与二维数组
01 |
#include<stdio.h> |
02 |
int main() |
03 |
{ |
04 |
int a[5][5]={1,3,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; |
05 |
int (*p)[5]; //p是一个数组指针,它指向一个数组,这个数组里面有5个元素。 |
06 |
p=a; // p是指向a[0][5]这个小数组的首地址,不是指向a[0][0]这个元素的首地址,所以p+1表示a[1][5]这个小数组的首地址 |
07 |
printf( "%d\n" ,**(p+1)); // 6 |
08 |
printf( "%d\n" ,*(*p+1)); // 3 |
09 |
printf( "%d\n" ,**p+1); // 2 **p是a[0][0] |
10 |
printf( "%d\n" ,(*p)[1]); // 3 第一个数组里面的第二个元素 |
11 |
printf( "%d\n" ,*p[1]); // 6 []的优先级比*高 |
12 |
printf( "%d\n" ,*p); // *p是1的地址,**p才是1. |
13 |
return 0; |
14 |
} |
有梦想就不会觉得苦.
Do you know what is the glittering life?