C語言問題,指標,字元陣列方面的

2022-11-20 06:00:14 字數 391 閱讀 2858

1樓:**夢幻

strcpy(str+1,p1+2);後,str從abcdefg變成acde。注意,這裡fg就沒有了,因為strcpy將第二引數的字串拷貝到第一引數後,會在最後加上'\0'。

strcpy(str+3,p2+3);後,str從acde變成acd45

2樓:匿名使用者

strcpy(str+1, p1+2) 的時候,str 從 b 開始被 cde'\0' 覆蓋,也就是以 abcde 的終結符為終結符,成為 acde 了。再一次 strcpy 後,從 acde 的 e 開始 以 45'\0' 覆蓋,成為 acd45。簡單說,strcpy 會以後一字串的終結符位終結符。

而目的字串過長的部分自然會從終結符開始被拋棄。

C語言的問題,指標陣列,c語言指標陣列

改變不了,字串常量是改不了的,你可以試試char p aaaaa p 1 b 這樣是改不了的 只能定義二維陣列才可以改 char p 3 100 這樣才可以改,不要問為什麼,字串常量就是不能改 直接讓指標指向另一個字串即可 p 0 aaaa 這樣定義指標指向的字串是無法修改的。c語言指標陣列 p是i...

c語言陣列(指標)越界訪問,C語言陣列(指標)越界訪問

與編譯器無關,只與記憶體管理機制有關,是作業系統級別的問題,堆疊的讀取方式只是資料結構上的不同,在機器層面,依然是單純的記憶體讀寫操作 陣列越界訪問的危險性不好評估,但確實是最嚴重的危險之一 結果基本上會100 崩潰,但是崩潰的原因很可能不一樣,就算是同一段越界 跑幾遍,原因也可能是不一樣的 指標越...

C語言陣列問題,c語言陣列宣告問題

for i 1 i 10 i break 要求按已排好的順序規律將它插入到陣列中.這段改為 for i 1 i 10 i a i 1 m break 你確定是從大到小排列嗎?我怎麼感覺你的程式是從小到大排列的啊。include void main 從鍵盤接收10個數。for j 1 j 10 j f...