二維陣列的遞減問題

Q.如以下代碼,我知道第一個(--dd)[2]為什麼是得34,但是第二個(--dd)[1]為什麼會是8而不是27呢?
還有最後一個--dd++[-7],我實在不知道是怎麼得到11的,我知道我問了很愚蠢的問題,但是希望大神們幫幫我QQ 萬分感謝!!!!


輸入代碼:

double * dd;
double data[4][4] = { {5,4,12,17},{9,10,31,21},{7,14,12,8},{27,34,42,18} };
dd = data[3];
cout << (--dd)[2] << endl;
cout << (--dd)[1] << endl;
cout << (--dd)[1] << endl;
cout << --dd++[-7] << endl;

輸出結果:
34
8
12
11

阅读 1.7k
1 个回答

dd = data[3]
指针指向 27
(--dd)) 指向 8 [2] 指向 34
再(--dd) 指向12 [1] 指向 8
再(--dd) 指向14 [1] 指向 12
++ 不用管 dd[-7] 指向 12 再做一次 -- 等于 11

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题