久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 數組名是常量不能自加 [打印本頁]

作者: 51hei社區    時間: 2016-1-16 07:04
標題: 數組名是常量不能自加
char p[] = "ssd";
++ p;
為什么會提示'++' needs l-value  ?

為什么
char *p = "ssd";
++ p;
卻可以呢???
隨隨便便回復于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
主站蜘蛛池模板: 国产精久久久久久 | 精品1区2区 | 久久亚洲一区二区三区四区 | 日本一区二区不卡 | 婷婷丁香在线视频 | 国产激情综合五月久久 | 精品国产第一区二区三区 | 日韩视频专区 | 高清黄色 | 91电影 | 99热在线免费 | 91麻豆精品国产91久久久久久 | 欧美精品一区三区 | 夜操 | 麻豆国产一区二区三区四区 | 在线视频h| 欧美a在线看 | 午夜tv免费观看 | 日韩二 | 中文字幕亚洲无线 | 国产日韩精品视频 | 国产一区二区 | 69视频在线播放 | 一区二区三区亚洲 | 欧美日韩在线一区二区三区 | 天天操天天怕 | 天天操夜夜爽 | 青青草一区二区三区 | 中文字幕精品一区 | 国产精品久久久久久久久久久久冷 | 国产精品mv在线观看 | 久久综合久久综合久久 | 日本高清精品 | 国产精品自在线 | 国产一区二区三区色淫影院 | www.久久久久久久久久久 | 精品香蕉一区二区三区 | 国产精品一二三区 | 精品一区二区三区四区外站 | 亚洲一区二区三区免费 | 91精品国产91久久综合桃花 |