幫我解釋下執行過程,詳細點!!!
1樓:雷穆天
樓主您好:給你解釋下執行的過程:
先包含2個標頭檔案。這沒什麼可說的,然後就是主函式:
在主函式中,先定義了b1陣列,含有8個元素:0-6號分別存放a-g的英文字母,7號元素為'\0',然後又定義了b2陣列,裡面有8個元素,最後定義了乙個字元指標pb(注意:指標裡面存放的不是資料而是位址。
b1+3意思是b1的起始位址向後移動了3位,也就是d的位置。不要理解為:abcdefg字母的ascii編碼+3。因此pb中存放了乙個位址,該位址是defg字串的位址。
ps下,如果你不信,你可以新增這樣2句話:printf("%p",pb);和printf("%s",pb),前者輸出位址,後者輸出內容。)
接下來,就進入了while迴圈。判斷條件也很容易讓人誤解。正確的理解是:
pb的位址先往前移動乙個(到了c的位置),然後與b1的位址(a所在位址)做比較,很明顯,條件成立。pb原先指向的內容為defg,位址自減之後現在的指向內容是:cdefg。
利用了strcpy函式,把cdefg字串拷貝在了b2中。
第二次迴圈開始了,pb又自減了(起始位址往前移動1個,到了b的位置)。此時pb的指向內容是bcdefg。而b1的起始位址始終在a處,條件很明顯,成立。
由於strcpy函式,把bcdefg字串拷貝到了b2中。(b2原先有內容,會被覆蓋。)
第三次迴圈開始了,pb又自減了(現在到了a的位置)。pb指向內容為:abcdefg。
而b1的其實位址始終在a出,條件是滿足的(滿足等號關係)。由於strcpy函式,將abcdefg字串拷貝到b2中。(b2原先的內容,又被覆蓋。
此時b2裡面的內容是「abcdefg」.最後利用strlen測試實際長度。自然是輸出7啦。
因為正好有7個元素。(strlen不會把'\0'算作乙個實際元素的。所以輸出7個)
plc執行行程式的過程的哪個階段程式執行的結果儲存
育知同創教育 當進人程式執行階段後,若輸人瑞又發生變化,則輸人映像區相應單元儲存的資訊,因被輸人 2 程式執行階段在程式執行階段,plc 的 cpu 從使用者程式的第 0 步開始,以接點資料為條件,根據使用者程式進行邏輯運算,並把運算結果存人輸出映像區單元中。 總有一個丫知道 對於使用者來說,在編寫...
求這段程式執行結果的解釋
鄭渝 最後的結果應該是 2,3解釋一下 union的意思是union中的元素都公用一塊記憶體,所以a和b使用了同一塊記憶體儲存 也就是說,對於s內的任一個元素來說,經過運算 s i a n s i b s i a 1 以後,b和a的值是相同的。例如 n 1,i 0時,s 0 a 1 s 0 b s ...
現在死刑的過程是什麼,國家怎麼執行死刑?過程是什麼?
易書科技 死刑又稱為極刑或生命刑,指的是剝奪犯罪分子生命的刑罰方法,人的生命只有一次,因而死刑是最為嚴厲的一種刑罰。世界上許多國家已經廢止了死刑,由於我國的治安形勢比較嚴峻,因此我國的一貫政策是保留死刑,但堅持少殺 嚴禁濫殺 防止錯殺。我國 刑法 對於死刑的適用物件有著嚴格的限制 死刑只適用於罪行極...