char型指標和字串字面量和字元陣列

2021-09-07 18:13:49 字數 576 閱讀 7479

1、當乙個char型指標指向乙個字串字面量(也就是常量字串)時,該指標必須由const修飾,否則,系統會給出deprecated(不贊成)的警告。原因是:字串字面量不可改變,當它被乙個非const修飾的指標指向時,存在被指標改變的風險。

2、char型指標指向乙個字元陣列時,沒有const限制,因為字元陣列可以被改變。但是,如果我們不需要指標來改變字元陣列時,我們最好加上const修飾,來限制指標的行為,減少出錯的概率。

3、例子:

#include int

main()

編譯後:t3.cpp: in function 『

int main(int, char**)』:

t3.cpp:

5:3: warning: deprecated conversion from

string constant to 『char*』 [-wwrite-strings]

p="where";

^

#include int main(int argc, char *ar**)

//該程式換為陣列,則沒有任何問題

字串,字串字面量和字串變數

1.1.1.0 字串的定義 字串是用雙引號括起來的子覅序列,並以乙個空字元來標識字串的結束。1.1.1.1字串常量 1 字串常量的性質 字串字面量是不可改變的量,它作為字元陣列儲存在記憶體空間中。abcdef 如果一行寫不開可以把第一行以 結尾,第二行頂格寫完。abc def 或者將他們分別用雙引號...

字串陣列char 和字串指標char 的討論

相同點 1.char a 和char a在作為形參的時候完全相同。2.在初始化時,都可以使用常量字串,區別1.內容位址不同 char a abcd 此時 abcd 存放在常量區,然後在棧上分配記憶體給a,並指向 abcd 在常量區的首位址。對於指標本身a來說,它是可變的,允許修改,可以指向其他的位址...

字串指標與char型指標陣列

一 字串指標 字串是一種特殊的char型陣列,指向char型別陣列的指標,就是字串指標。與普通指標一樣,字串指標在使用前也必須定義。字串與char陣列的區別在於長度,字元會自動在尾部加上乙個長度 0 而char型陣列的長度就是其字元的個數。字串長度是字元個數 1。例 二 char型指標陣列 指標陣列...