看板 C_and_CPP 關於我們 聯絡資訊
#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
nowar100:++造成指標移動 裡面的值沒動 10/29 15:05
ledia:(*i)++; ? 10/29 15:06
kingofsdtw: *(i++) i=int * 10/29 15:18
loveme00835:http://ppt.cc/sYTA 優先權先看一下, 後加的優先權比 10/29 15:19
loveme00835:dereference 還高, 所以你對了他指到的地方取值, 卻沒 10/29 15:20
loveme00835:有任何修改值的動作, 這行指令結束後, 參數指標往後加 10/29 15:21
loveme00835:除非你能保證寫得人跟看得人都很懂這種用法, 不然最好 10/29 15:22
loveme00835:還是分兩行寫 10/29 15:23
xatier:z-3-2-6 看一下 10/29 16:31
diabloevagto:不管優先權如何,最好還是加上括號比較保險 10/30 11:18