char*指向的字串是存放在常量儲存區,相當於const char*,該變數就只是乙個唯讀變數,所以對字串的單個字元無法修改;
char存放的字串是存放在棧中,陣列的每個元素是乙個字元,可以對字串的單個字元進行修改操作;
在函式void func(char* p)中,如果傳遞給形參p的實參是char*型別的字串,那函式中將無法對字串進行修改,因為此時p指標指向了常量區,修改常量區內容是不被允許的,執行時出錯;如果傳遞給形參p的實參是char型別字串,那函式中對字串修改有效,此時p指向的是陣列的位址,不是常量區,可以修改陣列中的內容。
字串char 和字串陣列char 的區別
字串char char str1 abcde 其實上面的char str1是字串常量,儲存在靜態儲存區,是唯讀的,也就是說它是const char str1 更好的表達它本身的意思。str1是乙個變數,代表的意思就是字串的第乙個字元的值 str1 可行 str1 2 f 不可行假如 char str...
char 字串和char 字串的理解
一 char 字串 1.如何宣告乙個char 字串 你可以這樣 char str test str是乙個指標,存放在棧區,test 是乙個常量,存放在常量區,vs2017要求這句宣告前面必須加上const,因為它所指向的常量字串是不可更改的 delete str 還可以這樣 char str new...
char 與 char 傳字串的區別
今天寫 的時候,寫了乙個字串的翻轉,簡單的說就是兩個指標乙個指頭乙個指尾,然後交換兩個指標的內容並讓指標挪動。void reversestring char str end while start end printf s str 就是上面的程式,編譯的時候沒有問題,但是執行的時候,程式在紅字處掛掉...