字串常量不可修改,陣列可修改的原因

2021-07-26 22:33:51 字數 343 閱讀 9246

一般情況下,想要獲得字串str=」kuai lai xiu gai wo」中的某個字元可以通過類似陣列方式獲得,str[i],但是卻不可以通過str[i] = 『xx』來修改。除非切割字串或者轉換為陣列。

var str = "beijing";

str[0] = 'hahaha';

console.log(str);

console.log(str[0]);

以上結果都未 b。目前研究了一下,得到的結果是,字串被建立後就相當於是常量,被存放在堆中,不可修改。轉換為陣列後,陣列是根據棧儲存的,可以訪問位址並修改。

再詳細的理由,我再想想,問問。

修改字串

將給定字串中連續出現3次的小寫字母替換為改小寫字母在字母表中的下乙個字母 z變為a 大寫字母和其他字元不處理,仍然保留。要求最終輸出的字串中不再存在任何連續出現3次的小寫字母。例如字串 atrcccert893 45ae 經過處理後應該為 atrdert893 45ae int changestri...

修改字串

1.字串變數 char s hello world int main 2.不知道為什麼不輸出,因此嘗試以下 int main s是乙個指標,初始化化為指向乙個字串常量 由於這個常量所在的地方,所以實際上s是const char s,但是由於歷史的原因,編譯器接受不帶const的寫法 但是試圖對s所指...

C語言 字串常量賦值給指標後不可修改原因分析

字串賦值給乙個指標後,再次賦值的時候發現會報錯。而將指標當作指標陣列賦值時,卻可以修改。char a char malloc sizeof char 5 char b char malloc sizeof char 5 a abc 0 b 0 a b 1 b b 2 c b 3 0 a 0 e b ...