1樓:
char *p; //定義指標變數p,指標變數是用來存放地址值的。
p="abcde"; //將字串"abcde"的地址賦給p。
//上面是正確的。
char *p; //定義指標變數p,指標變數是用來存放地址值的。
p=; //表示將字串"abcde"賦給p,而p是用來存放地址的,因此是錯誤的。
char p="abcde"; //改為這樣就對了,p現在是陣列,可以存放字元,p也可以當成指標使用。
2樓:匿名使用者
字串返回的是一個指標所以後面一個是指標陣列
所以應該是char **p = ;
3樓:
其實這兩個哪個都不對,目前有的另一個回答也不對
如果你是想宣告字串並且賦值,那就宣告的同時賦值
char *p="abcdef";或者char *p=;都可以
如果你好奇為什麼,就看下面吧
首先如果你的宣告是char *p; 下一個分句你對p賦值,那是在改變地址,*p才是指標指向的資料
所以第一個是相當於把一個常值字串強制轉換成了一個無符號的整型如果是32位平臺
第二個報錯,是因為編譯器認為無法進行隱式的型別轉換,被認為是一個字元陣列
所以你要麼在宣告的時候同時初始化char *p = "abcde";或者char *p=;都可以
要麼就在生命的時候明確的宣告可能的儲存空間char p[100];之後在賦值
個人建議你最好使用第二種方法,因為第一種的兩個語句,事實上是讓指標指向常值字串
不同的編譯器給這部分常值預留的空間不同,如果中間被侵佔了,那執行結果有時候會很歡樂
當然最主要的還是p在往後移動的時候只要不遇到\0就可以一直訪問下去,然後就是經典的緩衝區溢位錯誤了
另外,字串以外的陣列,多維字串陣列,這樣直接的賦值方式都是不可以的
c語言 char *p="abcde"; printf("%s",p);正確;;;char *p="abcde"; printf("%s",*p);錯誤,為什麼啊?
4樓:匿名使用者
你好,%s對應的是字串的地址,p是指標,p的值是"abcde"的首地址。*p是一個char值就是'a'即97,顯然指向記憶體地址為97的記憶體,所以就崩了。
5樓:蕭竣閏
因為這裡的p是字串abcde的首地址。而*p是指向字串首地址的變數。輸出%s即字串當然要用首地址了
char p[6]; p="abcde";為什麼不對
6樓:牽著螞蟻小散步
p是陣列p[6]的首地bai址,是個常量;
du「abcde」返回的zhi是abcde的儲存空間的地址dao,也回是一個常量;答
常量怎麼賦值給常量。。。
所以不可以,但是寫成 char p[6] = "abcdef"是可以的,相當於初始化,即p[0]='a',p[1]='b'...
7樓:匿名使用者
陣列名是個常量 ,不能放在賦值左邊.
char *p = "abcde"; p[4] = 'e'; char q[6] = "abcde"; q[4] = 'e'; 為什麼前者賦值可以,後者不可以。
8樓:匿名使用者
char *p = "abcde";
char q[6] = "abcde";
賦值ok
還有: char * p ; p="abcde";
ok但是:p[4] = 'e';
p[4] = 'e';
不可以 c 語言不允許,人家就是這麼定的
理解下為什麼: 因為p[4] 是個常量,那麼想想 常量能被再賦值常量嗎
比如 3=9; 能說的過去嗎?亂套亂套了 呵呵~!!
對陣列的初始化語句,char a[5]="abcde",是錯的嗎?錯在**? 5
9樓:
的確是錯的
應該宣告為char a[6]="abcde"=;
用"adbc"這種字串賦初值一定要特別小心,他會自動加一個停止字元'\0'
10樓:
「abcde」雖然只有5個字元,但組成陣列時後面還要加個空格字元,所以應該這樣定義
char a[6] = 「abcde」
這句話是對還是錯如果錯錯在哪兒為什麼
為什麼要用could呢?表示 可能性 用can就可以了嘛 呵呵,把我們這個分類的老大都驚動了。不能用could吧,不是過去式,沒有客氣的語氣,也不是在虛擬語氣中,用could挺莫名其妙的 我能說我看著是對的麼 參考 would 改成can would為過去將來時,事情還沒發生,所以用can 酒香不怕...
vb問題 錯在哪兒了?vb程式設計,大佬看下哪裡錯了?
你反了吧。x val val c x y cstr c 當然上面四句你可以直接這樣寫 cstr val val 任意轉數字。cstr 任意轉字元 常用於數字轉字元因為這樣不會多出來空格,如果你用 c則會多出空格,例如c是1.0那麼是 cstr可以避免這個問題。不知道你想做什麼。定義3個變數沒賦值,就...
邯鄲在哪兒
邯鄲是國家歷史文化名城。位於河北省南端,太行山東麓,晉冀魯豫四省交界處。東界山東聊城,南臨河南安陽,西連山西長治,北接邢臺。南北最大縱距104公里,東西最大橫距180公里。總面積12062平方公里。居民絕大多數為漢族,還有回 滿 蒙古 朝鮮 布依 苗 壯等少數民族。境內主要河流有南運河水系的漳河和子...