c语言关于,C语言关于 和 的问题。

2021-03-12 09:52:36 字数 6091 阅读 9060

1楼:匿名用户

|&& 和bai || 有短路效应

就是du

(++b&&++c). 当

zhi++b==0时 ++c就不用dao判断了所以 &&运算短版路权 ++c没有执行

当++a||(++b&&++c). 当++a 非0 ||运算短路 (++b&&++c).无需运算被跳过

所以结论 只有++a被执行

其余运算被跳过

2楼:匿名用户

|的||的优先级

抄和&&的优先级是一样的袭,就像数学上的“+”和“-”一样 。我试过了,运行结果为:a=2,b=1,c=1,d=0,e=6 press any key to continue.

原因如下:首先说++a||++b&&++c;——逻辑或是一真即真,++a可执行,即为真,后面的就不用执行了(也就是|++b&&++c不执行),所以b=1,c=1;同理,语句(d=w>x)&&(e=y>z);中,逻辑与(&&)的运算法则是一假即假,(d=w>x)的结果是0,为假,所以&&后面的也不用算了,d=0,e=6(没变)。

3楼:匿名用户

应该没有优先吧,一直没有注意!!看看书!!!

关于c语言中 || 和 &&的用法

4楼:匿名用户

|&& 和 || 都是逻辑表达式里常用的,一般用法是 if(表达式1 || 表达式2) 或者 if(表达式1 && 表达式2)

|| 表示 或 满足其中一个,整个表达式就为真,就满足if判定的条件

例如 if(1 || 0) std::cout <<"hello!\n"; 输出为hello

&& 表示 且 if括号内的表达式都为真 才能满足if判定的条件 才会执行if{}里的语句

不清楚请追问

5楼:谁敢横刀立马

|表||是逻辑或,例子如下

//表达式1||表达式2

//如果表达式1是true或者表达式2是true,整条式子的结果就是true,否则是false

int a=0;

bool z=(a>0||a==0);

//这个例子中条件a==0,所以整条表达式的结果是true,如果表达式1的结果是true,

//那结果也是true

&&是逻辑与,例子如下:

//表达式1&&表达式2

//这个操作符要求两边的表达式都是true整条表达式才是true,如下

int a=0,b=0;

bool z=(a==0&&b==0);

//这个例子中两边的表达式都是true,所以最后的结果是true,如果有一边的表达式不是true,,结果就是false

6楼:刘培鑫

||是逻辑或,例子如下

//表达式1||表达式2

//如果表达式1是true或者表达式2是true,整条式子的结果就是true,否则是false

int a=0;

bool z=(a>0||a==0);

//这个例子中条件a==0,所以整条表达式的结果是true,如果表达式1的结果是true,

//那结果也是true

&&是逻辑与,例子如下:

//表达式1&&表达式2

//这个操作符要求两边的表达式都是true整条表达式才是true,如下

int a=0,b=0;

bool z=(a==0&&b==0);

//这个例子中两边的表达式都是true,所以最后的结果是true,如果有一边的表达式不是true,,结果就是false

7楼:尘世间的菜鸟

#include

void main()

8楼:匿名用户

|| 和数学上的 "或者"差不

多 比如 x>1 || x<100 在c语言中 是从左自有判断 如果x>1成立就不会再继续判断 || 之后的式子 ,只有x>1不成立才会继续判断 || 之后的式子

1 || 1 为真

1 || 0 为真

0 || 1 为真

0 || 0 为假

&& 和数学上的"并且"差不多 只有 && 前后的试子都成立才会为真 也就是说 && 是从左往右 运算过程中 只要有一个为假 就不会再往后面判断

1 && 1 为真

1 && 0 为假

0 && 1 为假

0 && 0 为假 :这个要注意, (我上面只是说差不多哈) 你总不能错误的事情做两次就是正确的了吧

|| 与&& 的运算结果都只是真或者假

9楼:匿名用户

&& 逻辑与|| 逻辑或上面的是表达式同为真时则真。(1 > 0 && 2 > 0)下面的是表达式有一为真则真。(1>0 || 2<0)这两个表达式的结果都返回真。

笨方法的汉字理解方法就看字与就是共同 或就是取一。一样的。

10楼:匿名用户

||就是逻辑里面的或,&&就是逻辑运算里面的与,if(a>1 || b>1) 上面只要a>1或者b>1,c就等于0,如果用&& ,就要同时都大于1咯

11楼:匿名用户

if(x>1&&x<10) 其中&&就是并且的意思 这句话的意思是 10>x>1,

if(x>1||x<10) 其中||就是活着的意思 ,也就是说x<10或者x>1都满足条件。

12楼:匿名用户

a|| b a和b同时为假即为假,其它为真a&b a和b同时为真即为真,其它为假

13楼:匿名用户

||就是逻辑或,两个事件或

(当如加法1+0=1),&&逻辑与,两个事件与(当如乘法1*0=0;只有1*1=1);|按位或(就数据每一位连加,只要有一位不是零,就不是零);&按位与(就当如每位相乘后在相加,只有对应相互不是零才不是零)

14楼:匿名用户

用法和例子还是不太很好

15楼:y冰靥之星

||//或操作a||ba或者b有一个为真时式子就返回true,都为就假才返回false。

&&&&且操作a&&ba和b都为真时式子才返回true,否则就返回false

16楼:匿名用户

哈哈哈哈哈哈哈哈哈哈哈哈哈哈

c语言里||和&&的区别

17楼:月光疾风

"&&"表示"与", 意思是条件必须同时成立"||" 表示"或", 意思是条件有一个成立即可.

if((a*a+b*b>c*c)&&(b*b+c*c>a*a)&&(c*c+a*a>b*b))这个是判断锐角三角形的条件,你只要学过数学就应该知道锐角三角形的成立条件是:任意两边长度的平方和大于第三边长度的平方。

所以要用"&&"而不是"||"。

18楼:匿名用户

因为if((a*a+b*b>c*c)&&(b*b+c*c>a*a)&&(c*c+a*a>b*b))这三个条件必须同时满足(也就是逻辑与)的条件下才是锐角三角形。

||的话只要一个条件满足就可以。

19楼:小猫钓鱼

锐角三角形的性质:任何两边的平方的和都必须大于第三边的平方。

因为是“任何...都...”,所以a+b>c,a+c>b,b+c>a这三个式子必须同时满足,而不是满足一个即可,所以使用 &&

20楼:匿名用户

&&是逻辑与,只有他左右两个表达式都为真,整个表达式才为真,在他的左表达式为假的时候右表达式是不判断的,

||是逻辑或,只要他左右的表达式有一个为真,整个表达式就为真,在他的左表达式为真的时候右表达式是不判断的。

c语言中&&和||到底先算哪个?

21楼:忘记旅途了

这里出现三个运算符,++>&&>||,所以先算++,a=++a=2,为真,后面就不算了,

&&前面是0时,&&符号后面的不计算.

||前面不是0时,||号后面的不计算.

所以x=1,a=2,b=1,c=1

22楼:匿名用户

,逗号运算在c语言中是最后的。&& || 是同级,看哪个在前就先算哪个。不过要注意的是&& ||都有不完全运送。

对于&&运送则从左到右进行判断,如果左边为0,则右边不再计算,整个&&运算就是0.||运算也是从左到右,如果有左边为1则右边也不在计算,直接输出1.

++a||++b&&++c这个就可以先判断++a||++b,这里呢,根据上述所说的进行判断,如果1则继续判断&&,如果0则直接输出0,不做最后的++c

23楼:肖国林

其实计算机是这样算的,他会以||为界将表达式分为两部分,他会先算前一部分,如果前一部分为真,他将停止运算,如果为假,他才会算第二部分,你这里第一部分就为真了,第二部分当然也就不会算了。关于计算机对表达式优先级的判断,如果你学了数据结构中栈的结构和应用你就明白了。不过像这种表达式,最好是手动加上括号,而不是靠计算机来自动识别优先级。

像这样的,我的编译器都会警告,我都是会加上括号的,这样就没有警告了。如果不信你可以把&&和它的两个操作数括起来,我相信结果还是这样的。

24楼:米饭亦是菜肴啊

比|++比||和&&的优先级都要高,如果优先级高就先执行的话,那么||和&&执行之前,全部数字(除了x)都已经是2了哟~

毫无疑问的是a||b&&c是等价于a||(b&&c)的,但对于||来说,即使右边有一个括号,但||还是会先计算左边

25楼:匿名用户

这个要由c的预设||处理方式说明,||只要有一个成立就成立,所以++a后知道是非0就成立了,后面不执行。

26楼:冷天释

目测楼主没搞清楚为毛要从左开始算。。。。。。

建议先看&&和||的定义在说。

这个顺序不是优先级的问题,这是结合顺序的问题。。。。。。。。

27楼:匿名用户

它们的优先级是一样的。

28楼:匿名用户

逻辑的“与”和“或”,运算顺序上是同级的,谁在前面就先算哪个。

c语言中,&和&&有什么区别,|和||有什么区别

29楼:天雨下凡

&和|是针对位的操作,&&与||是逻辑操作符

设有变量x和y,则x&y,是先把x与y转换成二进制,再对每一位进行&运算,都为1,则结果为1,否则为0,x|y也是先把x与y转换成二进制,再对每一位进行|运算,只要有一个为1,则结果为1,二个都为0,结果才为0

x&&y,如果x与y都为真(非0),则结果为1,否则为0,x||y,只要x与y中有一个为真(非0),则结果为1,只有两都同时为0,结果才为0

30楼:my缪宇

&:是与的意

思&&:是且的意思

|:是或的意思

||:也叫或

&: 两个数字位操作 and。或者取某个变量的地址,或声明引用。

对 bit:(0 & x ) = 0; ( 1 & x ) = x;

&&:两个 bool 值的“并且”。( false && x ) = false; (true && x)= x;

|:两个数字 位操作 or。对 bit: ( 0 | x ) = x; ( 1 | x ) = 1;

||:两个bool 值的“或”。( true || x ) = true; ( false || x ) = x;

逻辑运算与按位运算,不一样的两种运算。

按位运算是把整数的每个二进制位与另一个整数对应的每个二进制位进行运算,是整数到整数的运算。逻辑运算其实是布尔值到布尔值的运算,只不过在c当中,所有非零整数都理解true,所有0都理解为false。所以4 && 2 == 1,其实是4是true,2也是true,与的结果是true,所以是1。

而按位操作,4是0b0100, 2是0b0010,它们没有重叠的二进制位,所以结果是4 & 2 == 0

关于switch语句的使用问题,关于C语言问题中switch语句的使用问题

1楼 下海的孤魂 switch结构里少了default语句。 应该如下这样,所有case完成后,最下面加上一个default。 以后请教大家时,出错信息里把行数也拷贝上来,可以更快地看出问题出在 。比如 warning c4060。。。 之前,应该还有出错的行数信息的。 switch int a 1...

求问下大神,C语言指针问题,大神大神,赐教啊,关于C语言指针问题。

1楼 阳光的雷咩咩 从声明可知l本身是指针类型,整个函数都是对l为头结点的链表做操作 要从函数内部改变函数参数的值,一般要用指针,这也就是为何initlist要用二级指针的原因。这个值得深入理解,我认为真正的难点在这里。 而不是后面传l为何起作用,这是你问的地方 2楼 匿名用户 不太明白你说的啥 能...

c语言问题,C语言问题 10

1楼 include int main void c语言问题 2楼 匿名用户 include include void main 冒泡排序按英语词典规律排序 for i 1 i 5 i printf the country s after sort is n 排序后的国家名称 for i 0 i 5...