I have met some questions about pointer in C.
int main()
{
int a[5][2] = {0,1,2,3,4,5,6,7,8,9};
int *p = a[0];
int (*p2)[2] = &a[1];
++p;
++p2;
// 1, a[0][1]
printf("%d\n",*p);
// 4, a[2][0]
printf("%d\n",**p2);
// 9, but I think it would run out of index. (2 > 1) -> error
printf("%d \n",p2[1][2]);
return 0;
}
Could anyone give me some comments about it.
BTW, How to get 5 using pointer p2?
Can *(*p2+1) get 5 ?
Thanks.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.141.7
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1454507637.A.887.html
※ 編輯: NoStra (36.229.141.7), 02/03/2016 21:56:44
→
02/03 22:06, , 1F
02/03 22:06, 1F
→
02/03 23:50, , 2F
02/03 23:50, 2F
→
02/03 23:51, , 3F
02/03 23:51, 3F
推
02/04 13:37, , 4F
02/04 13:37, 4F
推
02/04 16:03, , 5F
02/04 16:03, 5F
→
02/04 16:59, , 6F
02/04 16:59, 6F
→
02/04 17:00, , 7F
02/04 17:00, 7F