1. 程式人生 > >陣列名不能自加操作,指標可以自加操作

陣列名不能自加操作,指標可以自加操作

char p[] = "ssd";
++ p;
為什麼會提示'++' needs l-value   ?

為什麼
char *p = "ssd";
++ p;

卻可以呢???

原因:指標名型別 char* const p=..(指向不可變) 

指標可以++操作,而陣列名也可以轉化為指向第一個元素的指標,但是為什麼陣列名不能++操作呢?
因為定義了一個數組,那麼這個陣列的地址就是固定的了。如char p[] = "ssd"; 那麼p的地址是固定的。相當於char *const型別。改變p的指向當然錯了。