1樓:匿名使用者
說起來複雜,直接改寫一個do-while迴圈就好理解了:do while(*s++);
如果硬要解釋原程式的話回,那表示的是指標t所指答向陣列的元素賦值給s所指向陣列,並且t指標和s指標向後移動一位。具體來說:
先將*t的值賦給等號左邊,然後t指向地址往後面移動一位。
因為++自增運算表示的一些特殊性,s++表示的是s自增之前的地址,故*s++表示的還是原來的地址上的值(也就是原來的*s),這時候就會被賦值為*t(在t指標還沒移動前的值)。
while迴圈判斷*s的值是否是0,不是0就進入迴圈,並且s指向位置後移。如果是0,出迴圈,s指向位置依然後移一位。
注意:不管這個while迴圈進不進入,s和t指向地址都會往後移動一位。
2樓:人世間沒有天堂
while裡的條件表來達式是把自指標t所指的值賦給指標s所指向bai的空間。如du果這個值不zhi為0,則繼續執行while語句裡dao面的程式,並且s指標和t指標加1.直到這個值為0時,跳出迴圈。
3樓:匿名使用者
不斷的將t字串中的字元複製到s字串中,直到t字串結束,跳出while迴圈。
此時t已經指向字串的最後面了。
4樓:匿名使用者
這種來**在c裡很常見的。while(*s++=*t++);先賦值,自
再把s和t都++
while(*s++=*t++); 在語義上等同於(注意條件部分是一個=,不是2個):
while((*t) != 0)
顯然前者更緊湊,效率(可能)更高。
如果s和t是字元指標的話,就是字串拷貝
為什麼在判斷條件裡面用賦值呢? c語言的特色呀,緊湊迴圈體怎麼是空的?字串拷貝呀,目的已經達到了,所以是空的
5樓:
非常危險的操作,那個指標都不知道指去哪了
while(*s++=*t++)相對於
while(*s=*t,*s)
6樓:
while(*s++=*t++)相當於
while((*s)=(*t),s++,t++)
c語言中while(*s++=*t++)等價於什麼?
7樓:匿名使用者
*s++=*t++//這是一個賦值語來
句,返回值是源*s++因此,bai括號裡的一定是du*s
while語句的停止條件zhi是表示式
不成立。但既dao然while判斷了表示式,那表示式的結果就會被運算一次,而每運算一次會讓*s++,*t++。也就是說,在退出迴圈的時候,s和t還加了1。
但是c選項中,只有*s不為0才會讓*s++,*t++。所以最後一次沒有加。
故答案選擇b
8樓:匿名使用者
while(*s++=*t++)
這裡實現了bai四個操作。
1 *s = *t, 即將
dus指向記憶體
zhi賦值為t指向記憶體的值
dao;
2 執行回s的自加
答操作;
3 執行t的自加操作;
4 判斷執行自加前的*s值,如果*s為0,那麼退出迴圈。
可以寫成等價的for迴圈。
for(; *s; s++, t++)
*s = *t;
9樓:劉文正粉絲
因為, c它是. 如果s指向的變數為0, 那*s, 就是假.那麼*s++=*t++就不會執行.
但是, while(*s++=*t++)它是先把t自加版後的值(不清權楚是先自加還是先取值), 然後賦給*s++, 那麼*s的值就是*t++的值了, 所以while是否迴圈取決於*t++的值.
而while(*s)它明顯是取決於*s
再看c,
do while是必然先執行的, 然後再判斷是否繼續迴圈, 所以這時*s++就等於*t++了
10樓:正在輸入密碼
請問你這道題目是在哪個平臺做的
while((*t++=*s++)!=0)在c語言中的意思
11樓:匿名使用者
先將s指的值賦給t,再看t是否不等於空,是則執行while下面的語句,否則跳出while迴圈!
示例如下,長度為5,所以只有前五次不等於空,所以只輸出了五個ok:
12樓:
從句法上分析,先將*s 的值賦給*t 因為賦值表示式的值為左邊的值,所以接下來判斷*t != 0。最後再執行*t++, *s++。
13樓:匿名使用者
先賦值:*t = *s
while(*t != 0)
s指向下一個,t指向下一個
c語言中是什麼意思,C語言中 是什麼意思
等於的意思 是賦值的意思。只要理解到 賦值不是等於 就能分辨了。比如 int a a 2 賦值,讓a的值變成2 a原來是多少是不知道的 if a 3 判斷 a是否等於3,此時a的值仍然是2a 這是一個邏輯符號,也就是說,結果是真或者假.a b 當a與b相等時是真,否則為假.還有,迴應一下klboy1...
c語言裡的t是什麼意思C語言C是什麼意思
樓上寫錯了,應該是 轉義字元 而不是 轉移字元 轉義字元是一種特殊的字元常量。轉義字元以反斜線 開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱 轉義 字元。例如,在前面各例題printf函式的格式串中用到的 n 就是一個轉義字元,其意義是 回車換行 轉義字元主要用來表示...
c語言中是什麼意思C語言中x是什麼意思
非x即not x也就是說,表示x的相反的一面 如果if x 成立,那麼if x 就不成立。反之亦然。如果x不是零,那 x就變成零,如果x是零,那麼 x就變成1 x 字串 內容是 x x 註解行 x 註解行 條件 if x 0 printf x not equ zero n else printf x...