隨隨便便回復于17日03點25分 樓主,數組名跟指針是不能等同的。 |
tian_007回復于17日05點51分 數組名是右值?慚愧了,剛知道,以前一直以為和指針是一樣的呢 |
hsxsmz回復于17日08點00分 數組名可以轉換為指向其指代實體的指針,但是它只能被看作一個指針常量,不能被修改。 |
pangdudu回復于17日10點00分 char p[] = "ssd"; char b[] = "asd"; p =b; 提示 '=' : left operand must be l-value char *p = "ssd"; char *b = "asd"; p = b; 則通過 數組名與指針有什么區別??? |
wql0536回復于17日11點48分 數組名是常量 改成char*p不就行了 |
方卓然回復于17日13點25分 一句話 數組名不能作左值... |
小乖鼠回復于17日14點59分 數組名是常量,不能做自增操作 |
劉泉05回復于17日16點21分 有什么不同??具體說一下 |
幸福小托盤回復于17日17點42分 有什么不同??具體說一下 |
Afoit1000回復于17日18點51分 正解 |
bjlantian回復于17日19點54分 指針名類型 char* const p=..(指向不可變) |
wangziqing回復于17日20點54分 錯了不好意思^_^ #include using namespace std; int main(){ char *pch = "abc"; cout < < *pch < < endl; ++pch; cout < < *pch < < endl; } |
hsu0115回復于17日21點48分 up!! |
cnppri回復于17日22點31分 char p[] = "ssd"; 這是編譯器事先界定了的,它是一個常量指針變量,初始化后,無法再變更。 p++,機器偵測到你有意圖變更它,立刻報警,機器天生明白。 char p[4]; p = "ssd"; //如此拆分也不行,報error C2106: '=' : left operand must bel-value 說個題外話,象*p+1、p+1、&p+1這類操作,讓人看了費解,但機器天生知道。 |
家有碩鼠回復于17日23點18分 char p[] = "ssd"; 這時p是數組名,只有指針才能++,數組名不能++的。 |
daisyfeelyg回復于18日01點55分 同意 |
xinyuefff回復于18日03點36分 頂又學到了。 |
太行晴雪回復于18日04點13分 這樓兄弟說到點子上了。 指針可以++操作,而數組名也可以轉化為指向第一個元素的指針,但是為什么數組名不能++操作呢? 因為定義了一個數組,那么這個數組的地址就是固定的了。如char p[] = "ssd"; 那么p的地址是固定的。相當于char*const類型。改變p的指向當然錯了。 |
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |