c语言中x&y++%3 的运算步骤
x++&&y++
结果为
0&&0
是0,
所以执行
0
||z++,
z++是0,0||0
=0
0&&y++就跳过了y的运算
所以
x=1
y=0
z=1
C编译器匹配操作符的模式是贪婪匹配,也就是在语法成立的情况下匹配尽可能多的操作符。
编译器看到a+++b一句后,先尝试匹配一个+号,发现符合+运算符;再尝试匹配两个+号,发现符合++运算符;再尝试匹配三个+号,发现没有+++运算符,因此最终将前半部分解释为a++。剩下的一个+号只能匹配+运算符,因此整个表达式被解释成(a++) + b。最终结果是先计算a+b的值赋给c,然后将a+1。因此a=6,b=7,c=12。
优先级顺口溜醋坛酸味灌味落跳福豆共44个运算符醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度酸-算术,5个: * / % + -减味-位移,2个: << >>灌-关系,6个: < <= > >= == 等于 != 不等于味-位逻,3个: & 按位与 ^ 按位异或 | 按位或落-逻辑,2个: && 逻辑与 || 逻辑或跳-条件,1个,三目: ? :福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=豆-逗号,1个: ,
这跟优先级有关,自+的优先级最高,再接着是算数运算,再逻辑运算
先y++;
y++%3;
x&y++%3
C语言中,x,是什么意思
x 可以是变量名子,可以是函数名子,可以是一个字符,可以是字符串中的一个字符,可以表示16进制常数,具体是什么,要看在程序中用于何处,如何使用。'x' 是字符常量,相当于1字节整型,具体数值等于 x 的 ASCII 石马 值。
C语言:‘x'和x有什么区别吗?
x是一个变量名,如 char x;这时声明了一个名字为x的char型变量。'x' 为一个字符。如 char x='x';表示将字符'x'赋值给x的变量。这就是两者的区别,如果需要表示一个字符则必须用''括起来。
在c语言中(x)是什么意思啊
每个表达式都有值 (x)本身是表达式 其值是x的值
c语言"x"和'x'有什么区别
'x'是字符常量,就是字符'x'"x"是字符串常量,包含字符'x'和'\\0',也就是说有两个字符。
\\X在C语言里表示什么意思?
\\x是转义字符,告诉编译器需要用特殊的方式进行处理。\\x表示后面的字符是十六进制数,\\0表示后面的字符是八进制数。例如十进制的17用十六进制表示就是‘\\x11’,用八进制表示就是‘\\021’。所有的ASCII码都可以用“\\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\\"来表示常见的那些...
C语言中% X是什么意思?
C语言中%X的意思是以十六进制数形式输出整数。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能。发展历史 C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯·汤普森(Kenneth Lane Thompson)设计的B...
c语言 if(!x)中条件!x是什么意思
逻辑判断,叹号是非的意思,x是各变量,如果x为零那么!x就是1,相反是0。例如:若X是“0”(为假),则“!x”就不是零(为真),则里面为真,进入if下的大{}。若X不是“0”(为真),则“!x”就是零(为假),则里面为假,跳过if下的大{}。在C语言中一般认为“0”是假,其他不是...
C语言中的! x是什么意思?
c语言“while(!x)”中的“!x”的意思是:变量x强制转化为布尔类型变量再取非。“!”是C语言中的非运算符,在变量前面使用它,会构建非运算表达式,表达式的返回结果是个布尔值(也就是只有true或false)。对变量使用时,如果变量不是布尔数据类型,将会强制转化为布尔类型再使用,如整形变量123将被...
C语言中!X什么意思
X应该是一个变量吧。如果x为真,则!x为假。如果x为假,则!x为真。
C语言中return x是什么意思?
return x顾名思义就是返回x,如果在主函数里return 0;的话代表结束程序,如果是在其他函数里的话就是返回值,比如:int solve(){ int k;xxxxxx return k;} 比方主函数int main(){}这里就必须有一个return,只有void时可以不用返回值。
迟纪普拉: 关注下运算符号的优先级吧 优先级顺口溜醋坛酸味灌味落跳福豆共44个运算符醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度酸-算术,5个: * / % + -减味-位移,2个: << >>灌-关系,6个: < <= > >= == 等于 != 不等于味-位逻,3个: & 按位与 ^ 按位异或 | 按位或落-逻辑,2个: && 逻辑与 || 逻辑或跳-条件,1个,三目: ? :福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=豆-逗号,1个: ,
华安县19288214138: z+=++x+y++怎么算啊,我刚学C语言对运算顺序掌握不好.还有x%=y+3怎么算,要过程,帮帮忙,谢谢大家了 - ?
迟纪普拉: 第一个是 x++; z=z+x+y; y++; 后面那个是 x=x%(y+3);
华安县19288214138: C语言语句:++x%3==0; 请问这条语句怎么计算啊,什么样的x可以满足这个式子?? - ?
迟纪普拉: x+1为3的倍数即满足这个式子.如x=-1,2,5,8.....
华安县19288214138: c语言中x%=y+3是什么意思 - ?
迟纪普拉: 把x/(y+3)的余数赋给x
华安县19288214138: C语言 求算数表达式的值x+a%3*(int)(x+y)%2/4. 是怎么运算的? 先算什么在算什么?x=2.5,a=7,y=4.7 - ?
迟纪普拉: (int)(x+y) = 7 3*(int)(x+y) = 21 2 / 4 = 0 a%3*(int)(x+y) = 7 7%0 = 0
华安县19288214138: C语言,输入2个数X和Y,要求输入一个算术运算符(+,–,*或/),并对X和Y进行指定的算术运算. - ?
迟纪普拉: int main() {int a,b;char ch;printf("请输入x=");scanf("%d",&a);printf("请输入y=");scanf("%d",&b);printf("请输入需要进行的运算:");scanf("%c",&ch);switch(ch)case '+':printf("x+y=%d\n",a+b);break;case '-': ...
华安县19288214138: c语言中x=1;y=x+++3得到y是多少……要求详细解释 - ?
迟纪普拉: x=1; x先参入运算,后在加上1; 等号的优先级没有加号大,所以,x先加上3,在赋值给y y=1+3=4 x=2
华安县19288214138: c语言中如下语句是否规范,若规范则运算顺序是什么? 1.x=y=3; 2.x=(y=3) - ?
迟纪普拉: 第二句掉了语句结束符,也就是;第二句代码加上分号后这两句代码是一个意思因为赋值运算符的结合性是自右向左的,第一句先计算y=3,然后将y=3这个表达式的值赋值给x.第二句打上了括号运算顺序就更明显了,用数学来理解就是x等于(y=3)这个表达式的值!
华安县19288214138: C 语言表达式怎么解 - ?
迟纪普拉: +=,-=类似这样的符号,都是=号右边的是一个整体,可以理解成打了括号.也就是等同于这样的表达式.z=z+(x>y?x++:y++); =的优先级最低.括号中是一个三目表达式,先判断x>y的结果,成立则x++, 不成立则y++; 则表达式演变为:z=z+x++; 或 z=z+y++; 现在就明白了吧, 先算z=z+x,然后x+1, 或者先算z=z+y, 然后y+1.
华安县19288214138: C语言中 a=11,b=19 c=a*b%3的值怎么计算? - ?
迟纪普拉: 分析一下,这句话有三个运算符,其中* , % 是一个运算级的,=是一个运算级的,前者优先级比后者高.*、%是从左往右算,所以先算*,再算%,最后将结果赋给c .