我的问题是,这段代码是做什么的(来自http://www.joelonsoftware.com/articles/CollegeAdvice.html):while (*s++ = *t++);该网站说上面的代码复制了一个字符串,但我不明白为什么...与指针有关吗?
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
等效于:
while (*t) {
*s = *t;
s++;
t++;
}
*s = *t;
当t指向的字符为is时'\0',while循环将终止。在此之前,它将复制所t指向的char到所指向的char s,然后递增s并t指向其数组中的下一个char。
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
幕后花了很多时间:
while (*s++ = *t++);
在s和t变量的指针(几乎可以肯定字符),s作为目的地。以下步骤说明了正在发生的事情:
t(*t)的内容被复制到s(*s),一个字符。
s和t都增加(++)。
分配(副本)返回被复制(到while)的字符。
所述while继续进行,直到该字符是零(字符串中的端部C)。
实际上,它是:
while (*t != 0) {
*s = *t;
s++;
t++;
}
*s = *t;
s++;
t++;
但以更紧凑的方式写出来。
- 3 回答
- 0 关注
- 686 浏览
添加回答
举报
0/150
提交
取消