菜鳥級c 問題

2022-07-20 17:35:04 字數 603 閱讀 3174

1樓:匿名使用者

*s1=*s2這句處於for中間塊,所以它有兩方面的功能。

1、先賦值,將s2的字元逐個複製給s1。

2、後判定,注意*s1=*s2的邏輯值為*s1,而*s1又來自於*s2,所以,歸根結底它是想判定*s2是否為空,如果為空,迴圈將立即結束。因為中間位置為條件判定位。

而*s1=*s2,放到for迴圈內部顯然是不作任何判斷的。你輸出一堆字元,恰是你沒有在恰當的時候結束。

2樓:鄺秉

=確實是賦值,不是判斷

放在中間位置就表示要判斷(*s1=*s2)這個表示式的(表示式值取左邊的值即*s1)的值是否true(在c++、c中true值等價於非0),所以猜測它是想等到s1非0的時候for就結束了

這事很久以前學的,也許說反了,見諒

3樓:堵丹彤

*s1=*s2確實是賦值的,不過這整個語句還有乙個「最終」值,這個值其實就是*s1(或者*s2)。當字元*s1為字串結束符'\0'(其值為0,即邏輯值是假)時,跳出for迴圈。整個for迴圈就是不斷遍歷字串s2同時把它加到字串s1後面,直到結束(遇到'\0')。

所有問題應該清楚了吧?

c語言菜鳥級問題急待高手解答詳細分析步驟

這個題應該是這樣的,首先要知道運算子的優先順序和結合性,另外還要知道 k和k 的區別,k是即時生效的,即當時就會生效,而k 是這一句執行完才會生效 先說前半邊k k 因為 是右結合的,而且 優先順序最高,因為是右結合,所以此時最先看 k,這樣k就是3,然後是k 還是3,所以前邊是3 3是9 再說後半...

簡單c語言問題,求大神指教小弟這個初學菜鳥,謝謝各位

科學計數法表示的數,多為很小或很大 如題,1e 6 1 10 6 說點題外話,如果對這種格式不了解,可以定義幾個數,用 e輸出看看。1e 6 表示 1 10 6,它是指數形式 c語言初學者,不太懂這一題怎麼寫,求大神指教 就是插入乙個數之後把這個陣列看成是乙個新的陣列,再重新用排序演算法處理一遍就好...

分式菜鳥問題

答 這種題目還是比較簡單的 1 30000 x 2 x 4 3 30000 x 500 x 4 4 500 x 4 1 30000 x 件 2 x 4 元 3 30000 x 500 件 4 x 4 30000 x 500 是乘號哈 1 30000 x 2 x 4 3 500 30000 x 4 3...