如题所述
不可以,a&&b=1写法是错误的,正确的写法是a && b==1或者a && (b=1)。
解释:
在C语言运算符中等号的优先级比&&低,如果写成a&&b=1意思是先a&&b再赋值,而a&&b结果是一个数,等号左边是不能为数的,只能是变量。
参考C语言优先级图:
温馨提示:答案为网友推荐,仅供参考
第1个回答 2021-08-27
可以 ,但是个人感觉没用什么意义,你把一个固定值赋值给两个变量区运算。
补充 &&是位 与的意思 (例如 if( a>1 && b> 1) )
& 是与的意思(例如 a = b &0x80)
补充 &&是位 与的意思 (例如 if( a>1 && b> 1) )
& 是与的意思(例如 a = b &0x80)
第2个回答 2021-08-27
不可以,语法错误。
a&&b运行的结果必然是true或false,不再是变量,不可以做为左值。值【1】不可以赋值给值【true或false】,只能进行比较(a&&b==1)。
a&&b运行的结果必然是true或false,不再是变量,不可以做为左值。值【1】不可以赋值给值【true或false】,只能进行比较(a&&b==1)。
第3个回答 2021-08-27
不可以
根据,等效于
(a&&b)=1
显然子表达式a&&b不能作为赋值运算符的左操作数,不是可修改的左值本回答被网友采纳
根据,等效于
(a&&b)=1
显然子表达式a&&b不能作为赋值运算符的左操作数,不是可修改的左值本回答被网友采纳