C语言基础
我在linux终端中键入以下代码C语言基础,c,C,我在linux终端中键入以下代码 #include <stdio.h> int main(void) { int a; a=1; printf("%d\n",a++); } 现在输出显示为1而不是2。为什么我要递增 a的值通过使用++运算符来计算,但存储在a中的值仍不会递增。请提供帮助。a++是递增后的。因此,它首先在使用它的位置赋值,然后递增 执行以下两个示例。您应该清楚地了解前置增量和后置增量之间的关系: int main(void) { in
#include <stdio.h>
int main(void)
{
int a;
a=1;
printf("%d\n",a++);
}
现在输出显示为1而不是2。为什么我要递增
a的值通过使用++运算符来计算,但存储在a中的值仍不会递增。请提供帮助。a++是递增后的。因此,它首先在使用它的位置赋值,然后递增 执行以下两个示例。您应该清楚地了解前置增量和后置增量之间的关系:
int main(void)
{
int a, c;
a = 1;
c = a++; // assigns the value 1 to c and increments the value of a
printf("a: %d and c: %d\n",a,c);
}
int main(void)
{
int a, c;
a = 1;
c = ++a; // increments the value of a and then assigns it to c
printf("a: %d and c: %d\n",a,c);
}
在C语言中,后缀操作符++在使用变量后增加变量的值。所以你的陈述相当于
printf("%d\n",a);
a += 1;
通过使用前缀++,可以实现您预期的行为:
这相当于:
a += 1;
printf("%d\n", a);
请用谷歌搜索增量前和增量后的差异。这应该包含在几乎所有的C语言书籍和教程中。Linux终端不会执行C代码,这对于任何shell都应该是正确的。Google down?在这里发布一个问题比搜索你自己要容易得多??a++的结果是增量之前a的值;使用++a获得您期望的结果。请注意,在这两种情况下,对a的更新都是对表达式求值的副作用。@chux:我同意其质量,但在我看来,它显然低于标准,很像一个简单的打字错误。它表明,没有研究和一个答案可以找到比张贴在这里一个问题更容易。如果这样的问题被接受,这难道不是一个辅导/教学网站吗?
a += 1;
printf("%d\n", a);