问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言可以连续赋值么?如c=a=b=5???说详细哦

发布网友 发布时间:2022-05-01 02:26

我来回答

8个回答

热心网友 时间:2022-04-10 14:20

可以连续赋值,编译器是从右往左赋值,c=a=b=5就按照b=5,a=b,c=a赋值main

前带void表示main函数返回类型为空类型

在较早的编译器下,main前面不带void也可,编译器会默认为void返回类型。

扩展资料

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。

而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)

合理使用优先级可以极大简化表达式。

热心网友 时间:2022-04-10 15:38

优先级
在c语言的表达式中,如果存在多个运算符的时候,需要考虑数据的优先级和结合方向的问题,例如:x = a + b * c -d在这个例子中,c语言的处理流程是:
1. 先做乘法b*c,
2. 然后先做加法,后做减法
3. 最后将计算结果赋值给x
我们验证一下:

1 + 2 *3 -4,结果为3,验证成功!

通过这个例子,我们可以总结如下:对于表达式
a op1 b op2 c ,它的运行逻辑有两种可能性:
1. 如果op1优先级高于op2,则为:(a op1 b) op2 c
2. 如果op2优先级高于op1,则为:a op1 (b op2 c)
如果op1与op2优先级相同,则取决于结合方向。所谓结合方向指的是“从左至右”或“从右至左”。
结合方向
关于结合方向,我们一起来探讨一下,还是刚刚的例子:x = a+b *c -d,这里面有二元运算和赋值运算,在c语言中:
l 赋值运算的结合方向为:从右至左
l 二元运算符的结合方向为:从左至右
我们假设 b*c 的值为m,则,
l a + m -d 可以翻译为 (a + m) -d,,结合方向是从左至右
l x = a + m -d 可以翻译为: x = (a + m -d),结合方向是从右至左
在C/C++中,所有的运算符都有明确的优先级和结合方向定义,具体如下:

问题解答
铺垫好了知识点,我们回归到最初的问题上,x +=5 ==4,
由于==号的优先级大于+=号,所以这句代码的逻辑可以解读为:
1. x += (5 ==4)
2. 即先判断 5 == 4是否成立,此时不成立,返回false,即返回0
3. 然后再计算x+=0,所以最终结果为0。
使用代码验证一下:

执行结果:

可以看到,输出的结果依然为10,说明x添加的值为0,得到验证。
接下来,我们修改一下代码,让两个数字比较值返回true,再次验证一下结果。

热心网友 时间:2022-04-10 17:13

main前带void是旧试写法,最新的编译器不一定支持。
建议格式:int main(int argc, char **argv)

可以连续赋值,但是可读性较差。你的例子等价于调用
b=5
a=b
c=a

热心网友 时间:2022-04-10 19:04

c=a=b=5;
这条语句是没有错误的,首先可以了解到‘=’作为一个运算符,它有从右至左的结合性。当定义了变量a,b,c且没有赋初值的情况下,如果c=a=b,这样子是绝对会报错误的;当c=a=b=5;这样应可以翻译成b=5;a=b;c=a; 因此这三条语句是绝对正确的。
主函数【main】不是mian,作为一个函数必须有返回值,这是肯定的,不管是主函数还是子函数,当main不带void的时候,编译环境或者说编译器会默认main的返回值是void,就相当于带了void;但是作为一名优秀的程序员的话是会手写上返回值的类型,这是一种态度,既让程序易读也使程序更加规范。

热心网友 时间:2022-04-10 21:12

可以连续赋值,编译器是从右往左赋值,c=a=b=5就按照b=5,a=b,c=a赋值
main
前带void表示main函数返回类型为空类型
在较早的编译器下,main前面不带void也可,编译器会默认为void返回类型

热心网友 时间:2022-04-10 23:37

连续赋值是可以的,因为赋值语句的返回值是前面的,如b=5返回值是5,然后进行a = 5;
main是主函数,你可以看出一个函数来理解,函数可以有返回值可以没有

热心网友 时间:2022-04-11 02:18

1.连续赋值是可以的。
2.void 是带返回值。 没有是不带返回值。

热心网友 时间:2022-04-11 05:16

可以 int a,b,c
c=a=b=5
不能直接 int c=a=b=5
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何用按键精灵做自动点击器脚本? CLANNAD的图片越多越好,不要游戏的和动漫。 ...是动画还是漫画求给个名字,找到了追加分数,跪求!! ...最好白色为主那种)我要定制在衣服上的!越多越好! 求大量动漫图片下载地址,同人图片不要 求好看的动漫图,同人图或游戏图 高一学生党,想买个1000块左右的手机玩游戏,求推荐 苹果6S更新后很卡怎么办 ...月亮双子,水星摩羯,火星射手,木星巨蟹,土星摩羯,上升双子,星座达人... ...星座\水星星座\火星星座\金星星座\木星星座\土星星座.分别是什么... oppo手机忘记密码后怎么解锁? oppo手机忘记密码怎么解密码 C语言中变量赋值有什么规定吗? OPPO手机忘记密码了怎么办? c语言赋值是什么? 怎么进入126.邮箱 vivox9没有root情况下可以安装googleplay吗? CAD中,标注两条平行斜线之间的距离,最常用的方法 男人说女人纯洁什么意思了 说女生纯洁是什么意思呢? 男生跟女生说感觉你可单纯呢是什么意思?是不是要开始不怀好意了? 男生说喜欢清纯的女孩是指什么样的? 男生形容一个女生纯情,是什么意思? 如果一个男孩子说一个女生还是蛮单纯的是什么意思? 说女的清纯是啥含义啊? 男生说女生纯真什么意思 一个男孩说一个女孩纯洁什么意思? 说一个女生纯真是什么意思? 相亲认识后30天,男生说女孩单纯,是什么意思? 男生说女生纯洁,什么意思? oppo手机锁密码忘了,怎么解锁开机 c语言赋值问题? c语言的赋值问题? 什么手机又便宜运行内存又大? C语言的赋值问题!! C语言赋值问题 C语言中赋值的顺序 c语言赋值顺序? 有什么手机内存大又便宜(最好是一千元以下的) c语言赋值 c语言正确定义赋值 我有1500元我想买一部手机,买什么好?那部手机内存大又便宜好用? c语言赋值语句 a=b=c 是如何赋值 冰箱里的玻璃托板为什么无缘无故就碎了? 我家冰箱门外面玻璃碎了,换大概要多少钱,左下门 用sql语句比对2个表A和表B,并将比对出不同的数据存放在表C中,表A,B,C所以的列都是一样的,跪求。。。。 在快手直播的时候+如何抠除人像 网上看直播会扣钱么?? 直播上说扣一怎么抠? 直播间扣数字有什么诀窍