一、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;
或者這樣:
intmain()
2.如何宣告乙個char 字串
你可以這樣:
char cat[4] = ; //如果最後乙個字元不是 '\0' ,那麼cat就只是乙個字元陣列,而不是字串了
delete cat;
還可以這樣:
char cat[4] = "cat"; //注意字元數是3,而cat的大小是4
或者這樣:
char cat = "cat"; //讓編譯器自動判斷大小
intmain()
內如果要限定大小,只能用const size_type,包括字面值。
3.兩者之間的區別
3.1變數加減運算
intmain()
str++是合法的,而cat不能這樣操作,因為它是陣列名。
3.2寫許可權
上述**中,str[1]不能放在賦值號的左邊,而cat[1]可以。
3.3用char初始化char *
intmain()
字串陣列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 型別的...