刚刚在网络上看到一个东西
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.虽然知道两种写法是相等的,但请问为何会是相等的?
背后的原理我实在想不透