c语言中如下语句是否规范,若规范则运算顺序是什么? 1.x=y=3; 2.x=(y=3)

作者&投稿:蛮德 (若有异议请与网页底部的电邮联系)
y=(y=3, 2*x++);这个语句是什么意思? 运算过程又是怎么样的呢?~

(y=3, 2*x++)这个叫逗号表达式,其值为最后一个表达式2*x++的值。因此,y=(y=3, 2*x++);等价于:
y=2*x++;

x=0;
y=0;
c=x++&&y++;

++运算符优先级最高,先计算;其次是&&运算法;最后是=号运算符。

注意x++和++x的返回值,x++的返回值是x自增前的结果,++x的返回值是x自增后的结果

因此c=x++&&y++;就变成了c=0&&0,那么c=0了,x和y都经过了++,变成了1。

最终打印就是110了

都是规范的。首先要明白赋值运算符的结合方向,是从右向左的。

  1. 首先运算3赋值给y,然后将表达式y=3的值(其值也等于3)赋值给x,所以x、y的值都是3.

  2. 首先运行小括号中的(y=3),y的值为3,然后将表达式(y=3)的值(其值等于3)赋值给x,所以x、y的值都是3.



第二句掉了语句结束符,也就是;第二句代码加上分号后这两句代码是一个意思因为赋值运算符的结合性是自右向左的,第一句先计算y=3,然后将y=3这个表达式的值赋值给x.第二句打上了括号运算顺序就更明显了,用数学来理解就是x等于(y=3)这个表达式的值!

两种写法都可以,结果x和y的值都是3.
多个变量赋值可以用第一种写法:
int a,b,c;
a=b=c=3;
个人建议还是不要这样写,给人一种模糊的感觉。

规范啊,都是从右往左赋值。


C语言中如下语句是啥意思呀? a=x>0?3*x:x=10;
首先确定优先级最高的是A?B:C,意思是判断A,若A为1,即A正确,则运行B,否则(A为0,不正确)运行C。那么整句话的意思就是判断x是否大于0,若x>0,则将3*x赋值给a,若x不大于0,将10赋值给x,再将x赋值给a(也是将10赋值给a)。

C#语言中如下语句中方括号有什么作用?
方括号里面放属性。用来说明后面的方法或者类的特殊属性。DllImport是说明需要调用动态链接库。

C#语言中为什么在如下的语句中需要使用using?using是什么意思啊?_百度...
嵌入的语句或要执行的语句。备注 在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。实例化的对象必须实现 System.IDisposable 接口。示例 \/\/ cs_using_statement.cs \/\/ com...

C++语言中switch语句是否可以嵌套?
switch 是一种语句,在允许写语句的地方就可以写,例如:switch(j){ case 1: x=1;break;case 2:switch(i) { case 3: x=13; break;default: x=14; break;};break;default: break;} --- 开关语句内的入口是 case 和 default, 如果 这样写:switch(m){ switch(n) {...};case 1...

请问各位大侠,为何C语言中不能使用如下语句: void func(int &a,int...
void func(int *a,int *b)用这样的指针参数的函数传递的就是地址,像楼主这样定义是不合法的,你定义一个变量时,地址是由编译器自动分配的,你这个就比如:int &a,a本身就是不存在的,所以也就没有地址可言,你直接用&a对他取地址,这当然不合法了 如果你想实现"函数功能为交换两变量的值"这样的...

如果程序中有如下语句#define+NUM+10那么NUM是:()。+A.符号常量+B.全 ...
如果程序中有如下语句#define NUM 10,那么NUM是符号常量。符号常量是在程序中定义的一个标识符,它在程序中表示的是一个固定的值,不能再次被修改。在C语言中,宏定义可以用来定义符号常量。在上述语句中,NUM被定义为10,相当于程序中所有用到NUM的地方都会被替换为10。

在学习汇编语言的过程中,我碰到了如下一条语句:AND AL,AL 与自身进行...
并判断是否为1,为1的话,总数加1,否则右移一位,最后看总数是否为偶数,还是奇数 但是,还有更简单的方法就是 AND AL,AL JP doubleOne ;如果PF标志位为1,表示AL中位为1的个数是偶数,然后跳转到doubleONE ... ;如果没有跳转说明AL中1的个数为奇数 PS:若有不明白的地方,可以追问 ...

c语言中 a=10,b=20,!a
在C语言中,有如下语句:int a = 10, b = 20;!a < b 的运算过程:因为 ! 运算符比 < 运算符的优先级要高,所以先算 !a 的结果。a = 10,10是一个非零值(为真),那么 !a 的结果为 0 。此时 !a < b 变成了 0 < b,即 0 < 20,结果为 1(真)。其实,如果熟练之后,...

c语言中if语句如何验证输入一个字母是否与给定的相同
include <stdio.h> main(){ int a;printf("请输入密码");scanf("%d",&a);if (a=="abc")printf("您输入的密码正确");else printf("很遗憾的通知您,您的密码是错误的!");} 字符的用引号就可以

c语言中,while语句是否必须使用break语句跳出循环?
c语言中,while语句可以不使用break语句跳出循环。不使用break语句,while语句仍然可以通过执行到循环条件不满足的情况下结束,也可以通过return、exit、goto等其它控制语句来结束,甚至可以不结束该循环。while语句的语法上并没有要求循环一定要跳出。while语句通常被用于程序中就需要重复执行某些语句的情况。一...

大理白族自治州13470399922: c语言中如下语句是否规范,若规范则运算顺序是什么? 1.x=y=3; 2.x=(y=3) -
尉迟瑗茴三: 第二句掉了语句结束符,也就是;第二句代码加上分号后这两句代码是一个意思因为赋值运算符的结合性是自右向左的,第一句先计算y=3,然后将y=3这个表达式的值赋值给x.第二句打上了括号运算顺序就更明显了,用数学来理解就是x等于(y=3)这个表达式的值!

大理白族自治州13470399922: 以下C语言语句是否正确? -
尉迟瑗茴三: 数据定义上没什么问题 都是合法的数值及类型缺了两个字符 如下#include "stdio.h"main(){int a = -4;long b = -2222L;long long c = 123456789LL;unsigned int e = 234U;unsigned...

大理白族自治州13470399922: c语言,如下是否正确?如果正确,代表什么意思? -
尉迟瑗茴三: 不正确,s2指向的是常量字符串空间,不能再向该空间拷贝其他字符串.

大理白族自治州13470399922: c语言中如下语句 y=x+1; if (x>=0) if(x==0) y=x; else y=x+1; -
尉迟瑗茴三: 这样写的可能不是很规范,如果按照下面的书写格式,你可能就更加容易理解了. y=y+1; if(x>=0) {if(x==0)y=x; } ese {y=x+1; }if语句的意思就是说: 如果x<0 就执行y=x+1 如果x==0 就执行y=x

大理白族自治州13470399922: C语中if(!c)是什么意思 -
尉迟瑗茴三: !表示非的意思,当c为真时 !c为真,当c为假时 !c为真. 当!c为真时,则执行if语句. 在c语言中,int,char类型时,非0以为其他都是真,0为假.

大理白族自治州13470399922: 在c语言中 if(0)是什么意思 -
尉迟瑗茴三: if(0)的意思,就是不执行if(0)后面跟着的大括号里面的语句.(这里的大括号若没有,则表示if(0)后面跟着的第一个分号的语句.) 流程控制关键字 跳转结构 return:用在函数体中,返回特定值(如果是void类型,则不返回函数值).(K&R时期...

大理白族自治州13470399922: c语言中while的用法 -
尉迟瑗茴三: 语句a; while(n==1); 语句B; 当n==1时,程序while(1)成立,不断循环,因为后面while()后面直接是分号“;”所以这里n==1直接就是死循环, 当n与等于1时,程序同样是while(1)成立,和上面的情况一样,所以两个都是死循环. 扩展资料...

大理白族自治州13470399922: C语言中,printf函数如何处理%s? -
尉迟瑗茴三: '\0'是字符串的结尾标志,占一字节,值为0. printf("%s",arr)语句指定了字符串的开始地址arr,函数向后逐字节寻找值为0的字节,找到后把之间的字节按字符解释并输出. 你给出的情况,先输出abc,后面输出什么,要看内存的实际情况,可能什么也不输出,也可能输出一些乱码.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网