【发布时间】:2019-11-21 12:56:56
【问题描述】:
我正在寻找这个问题的解释。我无法理解 while 部分以及为什么打印 6。
#include <stdio.h>
#include<stdlib.h>
int main()
{
int array[] = {1, 2, 4, 0, 4, 0, 3};
int *p, sum = 0;
p = &array[0];
while (*p++)
sum += *p;
printf("%d\n", sum);
return 0;
}
【问题讨论】:
-
任何
non-zero号码都是true条件。因此,您的循环将一直运行到第一个0。 -
为了您自己(以及我们自己),请花一两分钟的时间格式化您的代码
-
问题的根本原因是忽略了C运算符优先级,这里会执行
++,然后是解引用
标签: c loops while-loop output