[問題] ++ * 陣列 腦力激盪
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
devC++
問題(Question):
output value
程式碼(Code):(請善用置底文網頁, 記得排版)
A::
int a[]={1,2,3,4,5,6};
int *p_a=a;
int i;
*(p_a++) +=123;
*(++p_a) +=123;
for(i=0;i<6;i++){
printf("a[%d]=%d\n",i,a[i]);
}
B::
int a[]={1,2,3,4,5,6};
int *p_a=a;
int i;
*p_a++ +=125;
*++p_a +=125;
for(i=0;i<6;i++){
printf("a[%d]=%d\n",i,a[i]);
}
補充說明(Supplement):
請問大家對這兩題的答案 有什麼解釋的看法@@
我覺得A跟B是不一樣 但實際上結果是一樣
對於A而言
*(p_a++) +=123; 這種句子要怎麼解譯 才是正確
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.185.139.29
→
08/26 22:41, , 1F
08/26 22:41, 1F
→
08/26 22:45, , 2F
08/26 22:45, 2F
所以可以解釋成
*(p_a++) = *p_a+123
但我的問題是 (p_a++) 的優先權 應該比 *p_a高阿
但是為何第一個執行完是 {124,2,3,4,5,6} 而不是 {1,124,2,3,4,5,6}
@@
※ 編輯: JuliaRobert 來自: 111.185.139.29 (08/26 23:07)
推
08/26 23:07, , 3F
08/26 23:07, 3F
→
08/26 23:08, , 4F
08/26 23:08, 4F
推
08/26 23:10, , 5F
08/26 23:10, 5F
→
08/26 23:11, , 6F
08/26 23:11, 6F
推
08/26 23:19, , 7F
08/26 23:19, 7F
→
08/27 00:00, , 8F
08/27 00:00, 8F
→
08/27 00:02, , 9F
08/27 00:02, 9F
→
08/27 00:03, , 10F
08/27 00:03, 10F