这些角色是如何产生的?

时间:2015-08-10 19:41:44

标签: c loops pointers

break;

输出写了Grinch,但我无法理解这段代码是如何执行的。如果int main(void) { char s[] = "Hsjodi", *p; for(p = s; *p; p++) --*p; puts(s); return 0; } 数组中不存在Gri这样的字母,并且何时循环终止我们的确实{{1},那怎么写出Grinch?是吗?

1 个答案:

答案 0 :(得分:1)

首先,请注意for循环没有任何大括号来创建一个块,所以循环体只是

--*p;

相同
--(*p);

现在,根据上面的语句,数组中的所有元素,直到终止null,已经减少了一个位置。这意味着,H现在是Gs现在是r,依此类推。注意

此外,循环*p中的条件检查是写*p != '\0'*p != 0的简写形式。

通过循环递减后,修改后的数组已通过puts()打印。

注意:您可能需要查看ASCII table以供参考。