请问如何理解C语言中的!((X=='A')||(X=='a')),这种表达式是指“ X不...
发布网友
发布时间:2024-10-21 20:13
我来回答
共5个回答
热心网友
时间:2024-11-14 11:36
可用逻辑代数代换。
!((X=='A')||(X=='a'))是“或非”,“或非”=“非与”,所以!((X=='A')||(X=='a'))→X!='A' && X!='a';
!((X=='A')&&(X=='a'))是“与非”,“与非”=“非或”,所以!((X=='A')&&(X=='a'))→X!='A' || X!='a'。
不过第二式是无意义的,它是恒成立的。看,X=='A' && X=='a'是不可能成立的,因为X不可能既等于'A'又等于'a',所以它的“非”!((X=='A')&&(X=='a'))总是成立的;变换成X!='A' || X!='a'后当然也是恒成立的,你自己分析。
!((X=='A')||(X=='a'))与!((X=='A')&&(X=='a'))的区别,前者是“或非”,只要一项成立,整式就不成立;后者是“与非”,两项都成立,整式才不成立。区别大了。
热心网友
时间:2024-11-14 11:39
不等于A且不等于a
热心网友
时间:2024-11-14 11:33
其实很容易,你自己把自己搞晕了
热心网友
时间:2024-11-14 11:35
&& 是个双目运算符,是从左到右运算的。它的运算规则是:对于表达式(x=a>b)&&(y=c>d),只有当左边的表达式(即(x=a>b))为真时,才进行右边表达式的运算(即(y=c>d))。而楼主 定义a=1,b=2;所以a>b为假,即x=0;所以右边的表达式不进行运算,即y还是等于2;运算结果截图
如果把条件改一下 int a=2,b=1,c=4,d=3,x=2,y=2,运行后 y则等于1.运行结果截图
讲 的这么清楚了,可以给分了吧??!
热心网友
时间:2024-11-14 11:36
第一个是X=='A'或A=='a的非第二个是X=='A'和A=='a'的非,刚考完省二级C我也有点忘了。。。