剛剛在網路上看到一個東西
while(*s++ = *t++);
左思右思就是看不懂
後來查了一下,原來這種寫法等價於:
while(*t){
*s = *t;
s++;
t++;
}
*s = *t;
也是這時候才知道C字串有*s++這種寫法
但我還是有兩個問題
1.*s++這種寫法,迴圈似乎不用加入終止條件,是因為C字串中必定有'\0'嗎?
因為我另外還有查到C++中有這種寫法:
while(*s){
cout << *s++;
}
這是代表C/C++中只要在迴圈中遇到'\0'就會作為終止條件嗎?
2.雖然知道兩種寫法是相等的,但請問為何會是相等的?
背後的原理我實在想不透