在K&R的C编程语言中,我继续看到代码
while(*s++ = *t++) ;,这只是第5章指针中的一个例子.这对我来说完全令人困惑,因为我虽然while循环如下:
while (something is true)
do what your assigned to do
Run Code Online (Sandbox Code Playgroud)
是某种特殊情况与C或我错过了什么?作为初学C程序员,这只是我的头脑.关于如何while(*s++ = *t++) ;工作的任何解释都会很棒.
我不会对表达的含义感到困惑(*s++ = *t++).我只是想知道为什么while循环体中没有任何东西.
你可以想到这样的代码,如果打破了最简单的命令:
while (1) {
char c = *t;
*s = c;
s++;
t++;
if (!c) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
要解释为什么它的工作原理,可以分配*t到*s再评估结果(a=b评估为被分配的值).如果它不为零,则继续.如果它为零,则结束循环.
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |