char 字串和char 字串的理解

2022-09-06 07:45:13 字數 1106 閱讀 7125

一、char* 字串

1.如何宣告乙個char*字串

你可以這樣:

char* str = "test";  //str是乙個指標,存放在棧區,"test"是乙個常量,存放在常量區,vs2017要求這句宣告前面必須加上const,因為它所指向的常量字串是不可更改的

delete str;

還可以這樣:

char* str = new char[20];  //str是乙個指標,存放在棧區,指向堆區的一塊20個位元組的區域的首位址

strcpy(str, "qwewqe");  //對其進行賦值

delete str;

還可以這樣:

char* str =new char[20] ;  //直接將字串內所有的元素都設為字元 'a'

delete str;

或者這樣:

int

main()

2.如何宣告乙個char 字串

你可以這樣:

char cat[4] = ;  //如果最後乙個字元不是 '\0' ,那麼cat就只是乙個字元陣列,而不是字串了

delete cat;

還可以這樣:

char cat[4] = "cat";  //注意字元數是3,而cat的大小是4

或者這樣:

char cat = "cat";  //讓編譯器自動判斷大小

int

main()

內如果要限定大小,只能用const size_type,包括字面值。

3.兩者之間的區別

3.1變數加減運算

int

main()

str++是合法的,而cat不能這樣操作,因為它是陣列名。

3.2寫許可權

上述**中,str[1]不能放在賦值號的左邊,而cat[1]可以。

3.3用char初始化char *

int

main()

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

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

字串char 和字串陣列char 的區別

字串char char str1 abcde 其實上面的char str1是字串常量,儲存在靜態儲存區,是唯讀的,也就是說它是const char str1 更好的表達它本身的意思。str1是乙個變數,代表的意思就是字串的第乙個字元的值 str1 可行 str1 2 f 不可行假如 char str...

char 和char 字串的區別

char 指向的字串是存放在常量儲存區,相當於const char 該變數就只是乙個唯讀變數,所以對字串的單個字元無法修改 char存放的字串是存放在棧中,陣列的每個元素是乙個字元,可以對字串的單個字元進行修改操作 在函式void func char p 中,如果傳遞給形參p的實參是char 型別的...