陈述 A 和 B 相等吗?
int i;
char a[] = "Hello\n";
char b[100];
声明A,
for(i=0; b[i] != '\0'; ++i)
b[i] = a[i];
语句B,
for(i=0; (b[i] = a[i]) != '\0'; ++i)
;
最佳答案
不,它们是不同的:
- 第一个循环检查
b[i]
的值在作业之前; - 第二个循环检查
b[i]
的值完成任务后。
结果,第二个循环将复制 a
的内容进入b
,复制后停止\0
。第一个循环一旦遇到第一个 \0
就会停止复制。在b
在执行复制之前,忽略可能在 a
中找到的任何零.
关于c - 在c中使用赋值语句for循环条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16013011/