關於字串指標的問題

時間 2021-05-09 21:05:34

1樓:匿名使用者

如果是指標,你迴圈拷貝的時候是修改指標記憶體的資料指標指向的是常量字串,這就間接地修改了常量,常量是禁止修改的,所以程式會掛掉

陣列是新分配記憶體,拷貝了一份常量。是在自己記憶體改的,沒改常量

2樓:匿名使用者

字元可以直接賦值,字元竄不能直接賦值。

char *str1="i love xml"這個語法上是不行的。

,上面的copy函式的兩個字元竄引數,最好有其相應的長度引數,就像這樣

void copy (char *a,char *b,long len_a,long len_b)

不然你不檢驗a,b字元竄長度,若字元竄b長度比a字元竄申請的長度長的時候就會將字元拷貝到a字元竄以外的記憶體,從而導致不可知錯誤。

3樓:

char *st1="i love xml",*st2="i reall love xml";

st1和st2是字串常量,常量不能改變值的。

char st1="i love xml",st2="i reall love xml";

st1和st2是字元陣列,是變數可以修改值的。

js字串拼接的問題,JS裡面字串拼接問題

奔流的宵析 拼接過後就是 topage 裡面帶的引數需要單引號 而包裹它的字串也是用了單引號 所以就得用轉義字元 斜槓 來讓拼接的字串正確 首先要明白的是 這個符號的意思是轉義,主要是用來區別語法中的字元和普通輸出字元的。你的 var str 假設id 1 name 張三 你會看的更加清楚。id n...

C語言字串問題,C語言字元陣列與字串問題

字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...

關於strcpy字串拷貝的函式的問題

就原來的str cpy函式來說,這個函式是沒有錯誤的,只是這個返回值的用途,看你怎麼用了,如果返回送給函式的形參str1原來的值,就要用temp了 個人感覺這種用法是多餘的,不過標準庫裡也是這麼做的 如果要返回已複製的字串的結尾,大可不用temp,直接改str1就可以了,而且有種奇妙的效果 char...