[問題] 前繼++ 和後繼++

看板C_and_CPP作者 (有信心)時間11年前 (2014/12/15 19:05), 編輯推噓3(309)
留言12則, 9人參與, 最新討論串1/1
請問一下下列問題 原始碼是 int a[]={1,2,3,4,5,6,7,8,9,10}; int *p=a; int i; *(p++)+=123; *(++p)+=123; for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n\n"); *(p++)+=123; for(i=0;i<10;i++) { printf("%d ",a[i]); } 為什麼執行的結果 在第二次print的第3個值是249 124 2 126 4 5 6 7 8 9 10 124 2 249 4 5 6 7 8 9 10 這個我一直想不通 請教高手 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.178.182 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1418641525.A.D5A.html

12/15 19:14, , 1F
啊不是印完換行後又執行一次+123
12/15 19:14, 1F

12/15 19:24, , 2F
因為p先取出 算好+123 POINTER才會在前進
12/15 19:24, 2F

12/15 21:13, , 3F
別練這無聊考題,為了考試而學? 看到新人寫這code我會退
12/15 21:13, 3F

12/15 21:13, , 4F
可讀性太差=_=
12/15 21:13, 4F

12/15 21:20, , 5F
純推五樓
12/15 21:20, 5F

12/15 22:49, , 6F
樓上為什麼要推自己
12/15 22:49, 6F

12/16 00:31, , 7F
push 5 f
12/16 00:31, 7F

12/16 06:21, , 8F
我想這種題目只會出現在筆試吧
12/16 06:21, 8F

12/16 08:06, , 9F
這連軟體公司面試都會考
12/16 08:06, 9F

12/16 08:57, , 10F
看情況,像微軟就不會出這種題目
12/16 08:57, 10F

12/16 20:48, , 11F
這種題目我只有面試和碩看過...為了考試而考的=_=
12/16 20:48, 11F

12/23 02:28, , 12F
*(p+1)+=123 或 *(p)=+1+123的差別
12/23 02:28, 12F
文章代碼(AID): #1KZi1rrQ (C_and_CPP)