#include<stdio.h>
void main()
{
int a=3,x;
x=(a++)*(++a);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果
x=16
a=5
#include<stdio.h>
void main()
{
int a=3,x;
x=(++a)*(a++);
printf("x=%d\n",x);
printf("a=%d\n",a);
}
运行结果也是
x=16
a=5
这是为什么啊?为什么不是12 和16呢
C语言中x=(a++)*(++a)和x=(++a)*(a++)运算后是多少?
所以结果是一样的 如果是 x=(a++)*(a++)x=9,a=5 因为在本语句中a++没执行 x=9之后 才自加2次 a=5 x=(++a)*(++a)x=25,a=5 因为本语句中先执行++a,自加2次,x=25,a=5
C语言自增自减问题
x=(++a)+(++a)+(++a); \/\/这种问题没有必要分析的。在不同的编译系统下,答案不一样,在VC++下,答案是24。
c语言(a++)+(a++)+(a++)和(++a)+(++a)+(++a)
因为a++是变量a先参与其他运算再加1,所以(a++)+(a++)+(a++)实际上是3+3+3=9,运算后a的值是6.++a则是先求a=a+1,然后再做其他运算,所以(++a)+(++a)+(++a)实际上是5+5+6=16,运算后a的值是6.
x=a++*a++*++的运算顺序
x=a++*a++*++(最后的*++中没有乘数,怎么运算?,++是自加运算符 当然不可以当做乘数);x=a++*a++是可以运算的,顺序是:先a*a,再把a*a赋值给x;最后a进行2次自加运算;这是因为a++是后自加,就是先使用a,再对a进行自加 希望对你有帮助~...
c语言的问题 a = (++a)+(++a)+(++a)+(++a) 计算原理
先取第一个++a和第二个++a,以进行二元运算“+”此时,经过两次++,a的值变为3 因此计算结果为a+a=6,此时不再是变量,而是值6 然后再取第三个(++a)a的值变为4 因此最终结果为6+a=10 同理 (++a)+(++a)*(++a)*(++a)第一步是处理+两边的操作数,取第一个++a,此时a变为2 之后...
C++中(++a)和(a++)有什么区别?
如果a=1,b=++a,运算完b=2,a=2 当然也可以这么理解:a++就是a=a+1,其含义就是现将后面的a赋值给前面的a然后再加1.++a就是a=1+a,其含义就是先对后面的a加1然后再赋值给前面的1.但这只是在表达式中.如果在单独的语句中二者都没有什么区别!列:int a=1,b=1;a++;++b;\/\/这里就是...
c语言 a++ 与++a有什么区别
a++是先用a的值,用过之后再将a+1,而++a是用之前先将a+1,然后再用!比如说a初始值是6,那么你让b=a++,运行之后,b=6,a=7;而b=++a,运行之后,b=7,a=7
C语言关于a++和++a的问题
int a=2 “printf("%d,%d\\n",a,++a);”为什么是3,3而不是2,3呢 printf是从后往前看参数的,++a,a=3,再执行输出。“printf("%d,%d\\n",++a,a);”为什么是3,2而不是3,3呢 同理,先看到a,则a=2,然后看到++a,a=3,输入。“printf("%d,%d\\n",a,a++);”为什么是2...
C语言b=(a++)+(++a)结果为什么为4?
b = (a++) + (++a)首先a=1; 第一个执行(a++) , 因为后面有个加法, 所以此时用于后面加法的数应该是1, 而执行了这句之后a=2, 在执行后面的(++a) ,因为前面有个加法 此时应该是先执行加1之后在执行前面的加法,所以此时a=3, 在和前面的1执行加法,在赋值给b 所以b=1+3...
*a++和*(a++)
这两个是一样的,都是取值之后再进行++运算 因为++运算符在变量之后时,会先计算表达式的值,然后再进行++ 看样子还有不少和楼主一样没有搞清楚的人,希望看了我的回答明白 (*a)++,居然还有人写出这个表达式出来,真想骂他,(*a)是一个值,根本不是一个左值,怎么进行++运算 ...