[問題] 關於函數

看板C_and_CPP作者 (Jun)時間15年前 (2010/10/29 15:02), 編輯推噓3(307)
留言10則, 6人參與, 最新討論串1/1
#include<stdio.h> #include<stdlib.h> void x(int *i) { *i++; } int main() { int i=0; for(int j=0;j<5;j++) { x(&i); printf("%d\n",i); } system("pause"); } 這個答案出來會是00000,想問一下*i++為什麼都沒用呢? 不是每執行一次x(&i)的話i就應該+1嗎?本來想說答案會是12345的,但卻不是。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.194.103

10/29 15:05, , 1F
++造成指標移動 裡面的值沒動
10/29 15:05, 1F

10/29 15:06, , 2F
(*i)++; ?
10/29 15:06, 2F

10/29 15:18, , 3F
*(i++) i=int *
10/29 15:18, 3F

10/29 15:19, , 4F
http://ppt.cc/sYTA 優先權先看一下, 後加的優先權比
10/29 15:19, 4F

10/29 15:20, , 5F
dereference 還高, 所以你對了他指到的地方取值, 卻沒
10/29 15:20, 5F

10/29 15:21, , 6F
有任何修改值的動作, 這行指令結束後, 參數指標往後加
10/29 15:21, 6F

10/29 15:22, , 7F
除非你能保證寫得人跟看得人都很懂這種用法, 不然最好
10/29 15:22, 7F

10/29 15:23, , 8F
還是分兩行寫
10/29 15:23, 8F

10/29 16:31, , 9F
z-3-2-6 看一下
10/29 16:31, 9F

10/30 11:18, , 10F
不管優先權如何,最好還是加上括號比較保險
10/30 11:18, 10F
文章代碼(AID): #1Cod64WC (C_and_CPP)