關於字串佔用空間的問題

2022-07-13 20:50:39 字數 763 閱讀 4434

1樓:

a是指標,

你上面的**沒有分配空間。

僅僅是讓a指向常量陣列「abcd」;

你可以對比下下面:

char *a;

char c="abcd";

a=c;

唯一的不同是a指向的不是常量,而是變數(現在a指向c,c是陣列變數)。

如果要給它分配的話應該這樣

char *a;

a = new char[5];

strcpy(a, "abcd" );

cout<

delete a;

這樣會讓a指向用new動態分配的含有5個字元的陣列。

然後利用strcpy來賦值。

a只是一個指標,它只能指向某處地址。

建議你多看書多思考。

2樓:

char*a;

那麼a佔用的就是4個位元組——一個指標的長度;

sizeof(a)=4;

即使你 char*a = new char[100];

sizeof(a)仍然為4;

你**中 直接給 a="abcd";相當於將a的值設定為了"abcd」的地址——在全域性資料區。

3樓:

a一共佔了4個位元組的位置,從4往後對a的索引都是不正確的,雖然c++程式編譯的時候不會報錯,但是這樣使用a的下標是不合法的,嚴重時可能導致系統崩潰。你訪問到的0或隨機數,都是分配給別的程序或尚未分配的空間。

C語言字串,求大佬,C語言字串陣列的問題

在語句for j 0 s j 0 j 中,j 記錄的是串s的字元個數,結束該迴圈時,s j 恰好是 0 在接下來的for迴圈中,第一個j 後,s j 是串s的最後一個字元,而i為0,迴圈體將s 0 與s j 進行交換,第二個j 是正常遞減,以便與i 相對應,交換s i 和s j 沒那個程式之類執行不...

jquery的字串替換問題,Jquery的字串替換問題

加個 g,全文匹配,用正則 使用.replaceall 嘗試。str.replaceall 是不是這樣寫?jquery 去除字串問題 這個貌似不用jquery吧,用replace方法就行 var a a,b,d,f,g,s a a.replace b,應該是先分割後join js或者用jquery的...

什麼是字串常量,字元常量與字串常量的區別是什麼

字串常量 一對雙引號括起來的字元序列 字串常量是由一對雙引號括起的字元序列。例如 china c program 12.5 等都是合法的字串常量。字串常量和字元常量是不同的量。它們之間主要有以下區別 1 字元常量由單引號括起來,字串常量由雙引號括起來。2 字元常量只能是單個字元,字串常量則可以含一個...