主要不明白a的值,括号里我知道是赋值语句,但是y的值怎么算到5的?请具体说明运算顺序!
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/06 07:14:40
主要不明白a的值,括号里我知道是赋值语句,但是y的值怎么算到5的?请具体说明运算顺序!
#include
int main()
{ int a,b,c;
int x=5,y=10;
a=(--y=x++)?-y:++x;
printf("%d,%d\n",x,y);
b=y++;
c=x;
printf("%d,%d,%d",a,b,c);
}
#include
int main()
{ int a,b,c;
int x=5,y=10;
a=(--y=x++)?-y:++x;
printf("%d,%d\n",x,y);
b=y++;
c=x;
printf("%d,%d,%d",a,b,c);
}
#include
int main()
{ int a,b,c;
int x=5,y=10;
a=(--y=x++)?-y:++x;//--y得y=9,然后y=x++,即y=5,x=6,接着5?成立a=-y=-5
printf("%d,%d\n",x,y);//最后x=6(只计算x++,++x未算) ,y=5(--y,y=x++即y=5)
b=y++;//b=y=5,y=y+1=6
c=x;//c=x=6
printf("%d,%d,%d",a,b,c);//a=-5,b=5,c=6
}
再问: 可是自增和自减结合方向不是自右至左的吗?为什么先是运算--y呢?而不是从右边x++开始?
再答: 结合性和运算方向有区别,如int i=1;则f(++i,i)等价于f(2,2)或f(2,1)f为函数,有些系统从左往右计算即++i=2,i=2,f(2,2)有些系统从右往左计算即i=1,++i=2,f(2,1)
--y=x++--,++同级运算,=要低,先算--,++后算=至于左还是右结果一样比如2*3+4*5到底先算2*3还是4*5与系统有关
int main()
{ int a,b,c;
int x=5,y=10;
a=(--y=x++)?-y:++x;//--y得y=9,然后y=x++,即y=5,x=6,接着5?成立a=-y=-5
printf("%d,%d\n",x,y);//最后x=6(只计算x++,++x未算) ,y=5(--y,y=x++即y=5)
b=y++;//b=y=5,y=y+1=6
c=x;//c=x=6
printf("%d,%d,%d",a,b,c);//a=-5,b=5,c=6
}
再问: 可是自增和自减结合方向不是自右至左的吗?为什么先是运算--y呢?而不是从右边x++开始?
再答: 结合性和运算方向有区别,如int i=1;则f(++i,i)等价于f(2,2)或f(2,1)f为函数,有些系统从左往右计算即++i=2,i=2,f(2,2)有些系统从右往左计算即i=1,++i=2,f(2,1)
--y=x++--,++同级运算,=要低,先算--,++后算=至于左还是右结果一样比如2*3+4*5到底先算2*3还是4*5与系统有关
主要不明白a的值,括号里我知道是赋值语句,但是y的值怎么算到5的?请具体说明运算顺序!
C语言中t+=a++语句的运算顺序是怎样的?输出值为t+a++的运算顺序又是怎样的?
赋值语句的值是多少 始终是1吗
执行赋值语句a="123"+"456"后,变量a的值是___?
执行赋值语句a="Visual"+"Basic"后变量a的值是?
4、 设说明整数变量 int a=7,b=9,t; 执行完赋值语句t = (a>b)?a:b后,t的值是
数学小括号的运算顺序 1、括号外是减号,括号里是加号如果拆括号会变成一到怎样的算式比如:
求助“a+=a-=a+a”这段赋值运算的计算顺序,在线等
C++中连续使用赋值语句的执行顺序
设有说明语句int x=35,B; char z='a ';则执行完下面的赋值语句后,B的值为________ .
按规律填写括号里的数字:2,3,10,15,26,35,( ),并且请具体说明是怎么算出答案的
设有变量说明:char a[6],*p=a;下面表达中,正确的赋值语句是