c语言中和有什么区别C语言中,和有什么区别,和有什么区别

2021-03-05 10:16:48 字数 5618 阅读 8671

1楼:天雨下凡

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

设有变量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

2楼: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

3楼:匿名用户

&& 是条件判断,返回结果只有1或0(即真或假)& 是与运算符,就像+-×÷一样可以返回任意位数的结果假设x,y,z都是8位数

则x&&y=0;

x||y=1;

y&&z=1;

y||z=1;

x&y=0000 0000&1111 1110=0;

x|y=0000 0000|1111 1110=1111 1110;

4楼:他de生活

区别:1.运算符

性质不同。

&是一个位运算符。

&&是一个逻辑运算符。

2.作用不同。

&是将两个二进制的数逐位相与,结果是相与之后的结果。

&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

3.用途限制。

&除了是一个位运算符,也是取地址符。

&&就是一个单纯的逻辑运算符,没有任何其他含义。

5楼:匿名用户

&要计算表达式1个小时表达

式2,而&&计算表达式1若此时表达式1是false则&&就不会再计算第二个表达式,而直接输出&&运算的结果是false。同理||运算的第一个表达式是true则||运算会直接输出逻辑结果而不在计算第二个表达式。

6楼:恋_心坊

&是位运算的与,每一位都要进行,&&是表达式的与,操作整个逻辑式,|(或)同理。

c语言中的运算符的&与&& 和 |与||有什么区别,用在什么地方

7楼:yesyes科

和|&和|是位运算。&&和||表示逻辑关系,&&和||表达式最终的值只可能是真(1)或者假(0),而位运算表达式的值不限于0和1 两者在特定情况下的效果是相同的。操作方法如下:

1、首先这里用到字符的ascii码,a的ascii码为65,之后用scanf函数进行输入。if设置为嵌套语句,判断输入的字符是不是在a-z之间,系统比较的是二者的ascii码,来输入大写字母g。

2、还是字母大小写的转换,利用逻辑运算符对第一个程序进行改写。使用逻辑与&&运算符之后,**更易于理解,而且计算机处理的时候更容易。

3、将letter = letter - ‘a' = 'a'改为了letter += 'a' - 'a',**可读性提高,开始运行,输入一个【,可以看到,非字母字符的输出达到了解决。

4、接下来要用五个新函数去完成这个程序,isalpha(),这个函数用来测试字符是否为字母,是返回true,isupper()和islower()用来测试字母是大写还是小写,最后两个函数toupper和tolower分别是用来将字符转换为大写和小写。

5、运行输入g,就完成了。

8楼:匿名用户

&和|是位运算;&&和||表示逻辑关系

&&和||表达式最终的值只可能是真(1)或者假(0)

而位运算表达式的值不限于0和1两者在特定情况下的效果是相同的,但是不建议这么做,会让人产生困惑

9楼:匿名用户

|,c语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别

在c语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^)。

第一组是逻辑运算符,它的操作数是布尔型,而第二组则是位运算符,其操作数是位序列。在布尔型操作数中,只有两个数值,0或1。c语言规定,在逻辑运算中,所有的非0数值都看做1处理。

而位序列则可以是有无符号的字符型,整型,长短整型等。在位运算中,是相应的位之间进行逻辑运算。因此,从逻辑上讲,位运算过程包含多个逻辑运算过程。

通常,位运算操作数选择无符号型数据。

1 应用实例

#include

int main(int argc, char *argvs)执行结果是:

false: a && b is 0

true: a && s is 1

true: a && c is 1

true: s && c is 1

a & b is 0

a & s is 10

a & c is 1

s & c is 0

a & 0x110 is 10

10楼:匿名用户

& |是位操作,一般操作在某个变量上

&& || 是逻辑判断,并且和或者的意思,一般操作在表达式逻辑上的,如:

if ( a&& b ) 表示 a为真且b为真c= a&b ; //进行运算,得到一个新的结果

11楼:竹冽岩青

&是 按位与 比如a=0xf0(11110000b),b=0xcc(11001100),那么a&b=0xc0(11000000b),意思就是每组二进制位响应地做与运算

同理 | 是按位取或,a|b=0xfc(11111100b)意思就是每组二进制位相应地做或运算。

&&和||就是判断逻辑的与和或,比如(a==b)&&(c==d)意思就是,a等于b,并且c等于d时表达式为真,逻辑上的

c语言中&&与&有什么区别

12楼:海天盛筵

语言中&&与&有三个区别:作用不同、输出的值不同、使用方法不同。如下参考:

一、作用不同

&表示按位与运算,另外也是取地址符;

例如:0010&1101,结果为0000

&&表示逻辑与运算;

例如:if(a==0&&b==0),意思就是ifa为0并且b为0的时候,进行下一步操作。

二、输出的值不同

&&:b输出的值为2,说明b没有自加1,没有运行到&&右边括号里的b++。0与上任何数都得0,所以当&&左边的数为0时,直接跳过了判断右边值的步骤。

所以在第二个程序中,当a的值为0时(a的值为0),程序不会判断&&右边的值,也就是说,它不会运行b++,所有b的值仍然是2。而位和&,不管a的值是否为0,都会决定右边的值,会回到右边的语句。

三、使用方法不同

1、&的使用方法是把两个变量a和b进行每个位进行与操作。

例:#include

intmain()

2、&&的使用方法

例:#include

intmain()

else

return0;}

13楼:仁昌居士

c语言中&&与&区别为:性质不同、

判断依据不同、结果类型不同。

一、性质不同

1、&&:&&是逻辑操作符,表示为“逻辑与”。

2、&:&是按位操作符,表示为“按位与”。

二、判断依据不同

1、&&:&&的判断依据是x和y均为true,取值是true,否则取值是false。

2、&:&的判断依据是将x和y两个数转为二进制进行逐位相与,同位都为1为1,否则为0。

三、结果类型不同

1、&&:&&的计算结果类型是boolean类型。

2、&:&的计算结果类型是二进制类型。

14楼:非常可爱

一、作用不同

&表示按位与运算,另外也是取地址符;

例如:0010&1101,结果为

0000

&&表示逻辑与运算;

例如:if(a==0&&b==0),意思就是ifa为0并且b为0的时候,进行下一步操作。

二、输出的值不同

&&:b输出的值为2,说明b没有自加1,没有运行到&&右边括号里的b++。0与上任何数都得0,所以当&&左边的数为0时,直接跳过了判断右边值的步骤。

所以在第二个程序那里,当a的值为0(而a的值也的确为0)时,这个程序没有去判断&&右边的值,即没有运行b++,所有b的值还是为2。而按位与&则不管,不管a的值是不是0,都会判断右边的值,都回执行到右边的语句。

三、使用方法不同

1、&的使用方法是把两个变量a和b进行每个位进行与操作。

例:#include

intmain()

2、&&的使用方法

例:#include

intmain()

else

return0;}

15楼:匿名用户

&& 有以下的意思

1逻辑运算符中的与运算,比如; 1 && 6 的值为真,而0&& 2为假

&有以下的意思:

1是指针中的取地址符运算符,比如:int i,*p;p=&i;就是把i的地址赋给指针变量。

2.位与,如3&5 意思就是 011 & 101 = 001,也就是1啦

你问的区别的话,应该是逻辑与和位与的区别吧,一个是以整体来与,一个是与其中的位来与的

16楼:匿名用户

&是取地址符,就是获取地址,比如 int a; 那么 &a,就是获取 a 的地址,

&&是“且”的意思,比如 int b; 那么 b>2&&b<3 就是b>2并且b<3。

17楼:董晋菅鹤轩

&是一个位运算符,就是将两个二进制的数逐位相与,就是都是1才是1,只要有一个为0则为0,结果是相与之后的结果。

&&是一个逻辑运算符,就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

18楼:猪头或火宝宝

&& 是逻辑运算符中的与运算,比如; 1 && 6 的值为真,而0&& 2为假

而&是指针中的取地址符运算符,比如:int i,*p;p=&i;就是把i的地址赋给指针变量。

C语言中与的区别,c语言中“&”与“*”有什么区别?

1楼 匿名用户 是取地址 叫解引用,意思是取地址的内容 举例 int a 3 int b a 这里 表示取a的地址 b就是去b的地址的内容就是3 2楼 诡其辞 s形式表示取变量s的地址 a b形式表示a与b之间进行位与运算。 s形式表示指针变量指向的位置 a b形式 呵呵!不消说了。 3楼 匿名用户...

c语言中与有何区别,c语言中%c与%s的有什么区别?

1楼 匿名用户 在定义变量时 是定义指针 是引用 注 好象c没有引用 例如 int pvar null 定义一个int类型指针int var 0 int pvar var 定义一个引用 并且定义时要指定所引用的对象 在使用时 是解指针 即取其指向的变量的值 是取地址int var 10 int pv...

C语言a b和a b的区别,C语言,++a+b和++b+a有什么区别

1楼 匿名用户 自增对象不同 a b 最后自增的是b a b 最后自增的a b c语言, a b和 b a有什么区别 2楼 珑月三 a b是先a加1,然后再加b b a是先b 1,然后再加a 3楼 亱風 a b是a先自加然后加b b a是b自加,,然后加a 结果一样,但是a 和b的值不相同 c语言b...