si++ 的行為分析表達式 ti = si++ 是 C 語言中經典的後置遞增範例。其核心語義為:先使用 si 當前的值進行賦值,再將 si 自增 1。
ti = si; // 先賦值
si = si + 1; // 後自增
si 的值在語句結束後會增加 1。si 必須是可修改的左值(如變數),不能是常數或唯讀記憶體位址。若 si 是指標(如 char *si),則 si++ 會依指標型別大小移動位址(例如 char* 移動 1 byte,int* 移動 4 bytes),而非單純的數值 +1。若需複製字串內容,請使用 strcpy 或 memcpy,切勿直接對指標做算術運算後賦值。
| 運算式 | 結果值 | 變數最終值 |
|---|---|---|
ti = si++ | si 舊值 | si + 1 |
ti = ++si | si + 1 | si + 1 |