看板 Programming 關於我們 聯絡資訊
如同標題 當 char a[5],*b[5],(*c)[5]; a++; b++; c++; 其中 a++和b++會有問題而c++沒問題 編譯器是寫lvalue required as increment operand 想問一下a,b詳細的不能被遞增的原因? 而c++又為何可以呢?請各位幫忙? THX -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.164.218
suhorng:C++也不行? 118.166.55.246 10/05 21:24
azureblaze:array decay成pointer時是prvalue 1.34.63.98 10/05 21:31
azureblaze:a和b是陣列,某些操作需先轉成指標 1.34.63.98 10/05 21:35
azureblaze:轉成的指標存在一個暫存值中 1.34.63.98 10/05 21:36
azureblaze:對他做更動沒有意義因此被禁止 1.34.63.98 10/05 21:36
azureblaze:就像 (a+b)++;也不行 1.34.63.98 10/05 21:36
suhorng:阿阿, 原來我把 c++ 誤以為是 C++ 了.. 118.166.62.3 10/05 22:03
drm343:所以變數真的要好好取XD 36.236.19.155 10/06 00:50
抱歉那在問一下 *b[5] (*c)[5]差別在哪 ※ 編輯: showyoulovex 來自: 36.239.221.162 (10/06 02:13)
CindyLinz:b 是大小為5的陣列, 每個元素是 char* 112.121.80.249 10/06 03:32
CindyLinz:c是一個指標, 可以指大小為5的char陣列 112.121.80.249 10/06 03:33
steve1012:要記住 *這個符號是修飾前面 所以你要 114.34.202.142 10/16 23:38
steve1012:修飾後面要括號 114.34.202.142 10/16 23:38