8 35 c語言,下列程式段的執行結果是什麼

時間 2022-08-10 20:12:11

1樓:元陽韓餘

你應該是要考二級了吧。這種編譯在實際上應該是不能通過編譯的。主要是考察對指標的學習。

首先將乙個字串位址賦值給指標p。之後p向前跳三個位置到d。此時字串相當於defgh。

之後將字串abcd複製到指標p所在位置。即從p所在位置開始複製。結果是abcdh。

到這裡有兩種說法,那就是strcpy是否會吧\0也複製進來。如果複製的或結果就是4如果不複製\0結果就是5.我自己的想法應該是複製\0。

結果應該是4.(msdn解釋是複製後會在結尾加上結束符,我覺得應該是4吧)strlen計算字串長度是從指標p位置開始計算。也就是計算abcd的長度。

不計算結束符。

2樓:匿名使用者

strcpy(p,"abcd")

當執行這句的時候,大多數作業系統都會讓程式異常退出。

原因:"abcdefgh"是常量,p+=3時,指向d,仍然是指向常量區的指標。

對常量區進行賦值,是不允許的。

常量區在程序空間中具備唯讀屬性,是屬於被保護的記憶體區域。

3樓:伊·梵

這個會報錯吧

"abcdefgh"是常量,strcpy(p,"abcd")是不允許的。

4樓:光霖

p+3表示指標向後移動三,指向d。然後將abcd複製進來,是從d出開始複製的。即為abcabcd。所以答案是7

5樓:宿命輪迴

11.strcopy()是將「abcd」拷貝到*p而p+=3為p=p+3,及在*p後開闢3個空間,及*p=「abcdefgabc」

6樓:oath斑駁

p是字串常量,const,怎麼可以對他使用strcpy

程式設計,c語言,c語言程式設計

這也值40分。好吧,等下啊我敲 密碼不用加防盜保護吧。寫好了,這應該是你要的 程式 include define imax 5000 define imin 50 define omax 1000 define 0min 50 long pw,money void in printf 超出範圍!失敗...

C語言求助,C語言問題,求助

寫的話挺費時間的,這個不難.c語言問題,求助 這題是迷惑人用的 因為迴圈內部沒有break,所以for會一直執行下去,直到a 11,這時a大於10,迴圈結束。最終a的值為11 for a 0 a 10 a 直到a 11時,迴圈結束。迴圈體對a的值沒有影響,包括continue對迴圈沒有影響。所以,最...

c語言程式設計,急,c語言程式設計?

include main if n 2 for n 1 n i n for k 1 k n k printf n 試試行不 int n int a 100 int b 100 a 0 1 scanf d n for int i 0 i n i for int j 0 j n i j printf f...

c語言,指標,c語言,指標?

void swap int a,int b 這個函式,只是交換了a和b的指向,比如說原來a指向1000,b指向2000,交換後a指向2000,b指向1000。但是呢,指向的內容並沒有變,位址為1000裡面的內容依然是3 假設 位址2000裡面依然是5,而且p和q依然是分別指向1000和2000,也就...

C語言問題,C語言問題

1答案應該是b,這個沒什麼好解釋的 就是指標變數指向變數的位址 2 答案應該是d 如果直接用字串對字元陣列初始化的話字元陣列的長度要比實際字串長度大1的 因為字串在字元陣列中是以 0 結束的,這個你也可以用sizeof 分別測試一下 我已經測試過了a比b大1的 3 答案應該是d,這個沒的說,括號的作...