关于自加自减
#include<stdio.h>发现此时m是3,n是6.这是说明++m的话是m先自加2次再参与对n的计算么?
main()
{
int m,n;
m = 1;
n = ++m + ++m;
printf("%d %d",m,n);
}
#include<stdio.h>
main()
{
int m,n;
m = 1;
n = m++ +m++;
printf("%d %d",m,n);
}
#include<stdio.h>
main()
{
int m,n;
m = 1;
n = m+ ++m++;
printf("%d %d",m,n);
}
n = ++m + ++m;
n = m++ +m++;
++m++;//自增++的优先级一样,所以由结合性决定,而++是右结合的, 因此相当于++(m++),而m++是一个右值表达式,而(前置或后置)++要求操作数是一个左值,因此报错。
(++m)++; //在C++中合法,在C中一样非法。因为在C中,++m也是一个右值表达式,
//但是在C++中,++m是一个左值表达式