c 指標問題幫我解釋一下while語句中的具體操作過程。越詳細越好哦

時間 2022-03-04 08:50:21

1樓:匿名使用者

首先要說明兩點:

1,指標運算子(*)與自增運算子(++)優先順序相同

2,上述兩者的優先順序都高於賦值運算子=

下面開始

while(*s++=*s2++)

1,首先進行的運算是*s

既將s中儲存的整數做為地址

2,然後s++,但是請注意,這不會影響上一步*s。

3,由於=優先順序最差,所以跳過它 計算*s2

4,s2的值自增1,與上面一樣,這不會影影響*s2。

接下來執行「=」運算,也就是將指標s2所指向的單元的值賦給指標s所指向的單元

5,接下來這步最關鍵,當第四步操作成功時,while()括號內的指令由於執行成功,所以返回一個真值,也就是bool型別的值,true

6,接下來while由於括號內的條件判斷成功,執行其函式體,由於函式體為空,所以進行下一次while迴圈,即首先判斷括號內的指令的執行結果。

*****問題的關鍵是,while什麼時候才會停止呢?哈哈,這裡比較有趣,首先char型別陣列結束結束的標誌是'\0',這個你要是不明白說明你基礎不行,好好看《c++程式設計》這本書去,當遇到'\0'時,會將s2指向的'\0'賦值給s指向的單元,然後下一次迴圈,s與s2由於都自身加了1因此,s2指向的是結束符'\0'後面的一個單元,當然,這就產生了地址越界,也就是說這個單元對s2來說是無效的,因此,賦值操作也就無法成功,因此*s=*s2執行的結果是失敗,返回值為假,也就是bool型別的false所以while迴圈就終止了。

2樓:杜雅潔的資源

當指標s1,s2所指向的值不等於0時,執行s1,s2加1.直到等於0時跳出迴圈

3樓:

就是把後面的字串賦值給前面的那個

4樓:夜遊神小翠

函式要實現的是字串拷貝的功能,定義了一個字串s1,要把s2複製到s1中,*s.++ = *s2++,就是通過while迴圈,第一次把s2中的第一個字元複製給s1中的第一個字元,拆分開來就是兩個過程,先複製,然後s1和s2的指標都往後移,再複製……如是迴圈,就把s2中的所以字元一一複製到s1中,當複製完最後一次後,s2中沒有元素了,複製不成功,即賦值表示式為假,此時結束迴圈,返回s1。

5樓:

這就是簡單的字串複製過程, while(*s++ = *s2++);

這裡的是賦值不是判斷,要注意。++表示指標後移依次把s2的內容付給s1

誰能幫我解釋一下這句話,誰能幫我解釋一下這句話的意思

這是一句籤文。意思很清楚 1 雲開霧罩山前路,目前你的狀態,主要是前途方面,或者是你所問的問題的解決方法,很不明朗。你或許自己也不知道怎麼辦。或許你想怎麼辦,但是卻行不通。這句話很不好了。2 萬物園中月再圓,告訴你不要急。月有陰晴圓缺,人有悲歡離合 人總是有沉浮。你要等待機會。你該浮的時候,就是走運...

能幫我解釋一下這段程式麼,誰能幫我解釋一下這段程式的意思?最好每一句特別是開頭那幾句有什麼作用?萬分感謝

樓上的寫的不錯,就是將大寫的改成小寫的,但是你要注意的一點是,即便是你輸入的不是小寫字母,比如特殊符號什麼的,是不會改變的.將處理過的字元,儲存到檔案裡 檢查輸入的字串裡面的每個字元,是否在 a z 之間,如果是,則將其ascii碼值 32,也就是將小寫轉換為大寫,然後寫入到檔案中 應該是 開啟檔案...

請給我解釋一下,請幫我解釋一下在問題補充裡的那句話的意思,謝謝

僅供參考!近日,南京市 關於促進新生勞動力就業的意見 正式出臺,旨在通過政策推動,幫助 2030 即20 30歲 的新生勞動力找到飯碗。為畢業生提供專門服務視窗 新生勞動力是指南京籍進入勞動年齡段 有勞動能力和就業願望從未實現過就業的高校及中專校畢業生,以及未能繼續升入高一級學校學習的勞動者。根據 ...