C语言:什么意思?
发布网友
发布时间:2022-03-08 09:09
我来回答
共6个回答
热心网友
时间:2022-03-08 10:39
#include "stdio.h"
void main()
{
int a=10,x=5,y=6; /*定义整型变量,并赋初值a=10,x=5,y=6*/
a+=a*=6; /*a=a+(a=a*6) 赋值运算符,从右向左运算,也就是先算a*=6 这个就是a=a*6=10*6=60;然后再算a+=a,就是a=a+a=60+60=120*/
x=y++; /*y++是先用在加,所以x=y++=6,但是已经过一次自增后变成了7*/
y=++x; /*++x是先加再用x的值,所以y=++x=7(在上一步x=y++; 之后已经变成了6,在自增1就是7)x和++x也都等于7*/
a=(x++)+y; /*x++和y++一样都是先用后加,所以a=(x++)+y=7+7=14,然后x又一次自增变成了8*/
printf("%d,%d,%d",a,x,y); /*输出a,x,y的值,格式应该是:14,8,7*/
}
热心网友
时间:2022-03-08 11:57
a=14,x=8,y=7
是这样算出来的
#include "stdio.h"
void main()
{
int a=10,x=5,y=6;
a+=a*=6; //由于下面有对a的重新赋值,所以此行不用计算
x=y++; //把y赋给x,之后y+1,x==6
y=++x; //把x加1后赋给y,y=7,x=7
a=(x++)+y; //x+y赋给a,a==14,之后x加1 x=8
printf("%d,%d,%d",a,x,y);//输出14 8 7
}
懂了吧
热心网友
时间:2022-03-08 13:48
int a=10,x=5,y=6; /*定义整形变量a=10,x=5,y=6*/
a+=a*=6; /*即a=a+(a*6)*/
x=y++; /*y自加一次*/
y=++x; /*x自加一次*/
a=(x++)+y; /*x自加一次后加y*/
printf("%d,%d,%d",a,x,y); /*输出a,x,y*/
}
热心网友
时间:2022-03-08 15:56
#include "stdio.h" // 标准C(ANSI C)里有关i/o操作的库文件
void main()
{
int a=10,x=5,y=6; // 初始化a,b,c
a+=a*=6; // 算法符优先级 =:从右到左 先计算 a*=6 得a=60
// a+=60 得a=120
x=y++; // y++即先运算,再y值加1 等价于x=y;y=y+1;
// 得x=6 y=7
y=++x; // ++x即x值先加1,再用于赋值 得y=7 x=7
a=(x++)+y; // 同理,先x+y得a=14 后x++ 得x=8
printf("%d,%d,%d",a,x,y);
}
总结,考查运算符的优先级关系以及++x和x++的用法.
运算符优先级可参考:http://ke.baidu.com/view/262524.htm
参考资料:http://ke.baidu.com/view/262524.htm
热心网友
时间:2022-03-08 18:21
#include "stdio.h"
void main()
{
int a=10,x=5,y=6; //把数负给字母
a+=a*=6; //
x=y++; //y自身加上1
y=++x; //
a=(x++)+y;//x加上1再加上y把直负给a
printf("%d,%d,%d",a,x,y); //输出axy的直
}
热心网友
时间:2022-03-08 21:02
a+=a*=6; 不用管后面不用
x=y++; 此步后x=y=6,y=y+1=7
y=++x; 此步后y=x+1=7 ,x=x+1=7
a=(x++)+y;此步后 a=x+y=14,x=x+1=8
所以结果为14,8,7