求助大佬们一个自增型的问题!
#include<stdio.h>int main()
{
int a = 2,b = 3,c,a2,b2;
a2 = ++a;
b2 = b++;
printf("a2 = %d\nb2 = %d",a2,b2);
return 0;
}
这个程序输出的 a2 = 3, b2 = 4;
#include<stdio.h>
int main()
{
int a = 2,b = 3, c;
c = ++a + b++;
printf("c = %d\n",c);
}
为啥这个程序输出的c = 6呢,意思是a先赋值2给了表达式然后计算完了在增加吗? 自增运算符是会改变变量自身的..你再带进去算算 qiuyouzhi 发表于 2021-2-23 15:13
自增运算符是会改变变量自身的..你再带进去算算
对 确实会改变。有点像静态变量的性质一样我感觉 学编程的盆子 发表于 2021-2-23 15:21
对 确实会改变。有点像静态变量的性质一样我感觉
和静态变量有啥关系 c = ++a + b++;
++a表示先自增后运算,即a=2+1=3,再参加加运算
b++表示先运算后自增,即b先参加加运算,然后b=3+1=4
参加加运算的两个数字是3和3,结果就是6 第一个程序结果应该是 a2 = 3, b2 = 3。 b2 = b++,应该是先把b的值赋给b2,然后再自增。
第二个程序也是这样的a先自增加上b赋值给c,然后b再自增,也就是说c=3+3 shake_a_tree@16 发表于 2021-2-23 15:24
c = ++a + b++;
++a表示先自增后运算,即a=2+1=3,再参加加运算
b++表示先运算后自增,即b先参加加运算, ...
#include<stdio.h>
int main()
{
int a = 2,b = 3,c,a2,b2;
a2 = ++a;
b2 = b++;
printf("a2 = %d\nb2 = %d",a2,b2);
return 0;
}
那对于这种,可以理解他就是算完存入新值再输出吗
学编程的盆子 发表于 2021-2-23 15:27
++在前就是先自增后运算,++在后就是先运算后自增
现在的代码,a2和b2应该都是3
页:
[1]