2 daxiazaiwusi daxiazaiwusi 于 2016.03.06 09:16 提问

C语言运算符重叠的问题C语言运算符重叠的问题

C语言&和&&的区别是什么,*和**的区别又是什么

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.06 09:19
已采纳

&是位运算,&&是逻辑运算。
比如说 a=1 b=2 &&出来是true,但是&出来是0,就是false
是指针,也是乘法
*
是二级指针
一些语言中**表示乘方,但是C语言不支持。

u013596119
u013596119   Rxr 2016.03.06 10:37

补充楼上的

&:位运算, 比如a&b,a=1,b=2,二进制a 01,b 10,&就是二进制且运算,1&1=1,0&0=0,1&0=0,0&1=0,所以a&b=01&10=0
&&: 逻辑运算 and, true&&true=true,t&&f=f,f&&f=f

 *: 指针,或者乘号, int* p,p就是指针变量
 **: 二级指针,指针的指针
WinsenJiansbomber
WinsenJiansbomber   2016.03.06 11:07

&和&&涉及两种运行模式,位运算和逻辑运算; * 和 ** 只是指针的运算,一个星表示运算一次。太复杂的语法结构就不要用了,比如说 i+=i---i+++i这种,写完都没有人能理解。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言-自增与自减运算符
自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“–”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式:注意:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a–还是–a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。
一个C语言运算符优先级导致的问题
检测某个数的某个二进制位是否为0,是常见的控制逻辑,如下代码所示:if (x & (1<<2) == 0) { printf("x的第2个二进制位为0\n"); }然而实际上,上述代码永远不会执行printf,也就是说 x & (1<<2) == 0这个表达式始终为0。原因在于在C语言里,==运算符的优先级高于&,导致上面的表达式相当于:if ( x & ((1<<2) == 0) )因为1
c语言中运算符运行速度比较
运行坏境:虚拟机下ubuntu10.04, i3处理器 今天发现在pjsip开源代码在实现哈希表值的时候竟然不是使用常见的“%”运算,而是“&”这让我很好奇,猜想&运算比%运算要快,于是写了下面代码来验证自己的猜想,事实确实是这样的。 下面是比较运算符 (乘*、除/ 、求余数%、与&、或| )的运算时间比较 #include #include #include #define TOT
C语言运算符表C语言运算符表C语言运算符表
dC语言运算符表C语言运算符表C语言运算符表C语言运算符表C语言运算符表C语言运算符表C语言运算符表
C语言中的所有运算符用法及总结
1
C语言之左移和右移运算符
左移运算符() 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是非负值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。 右移运算符(>>) 右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分用符
C语言之各种运算符
异或的符号是⊕。按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0. xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。131452
C语言运算符:(一)
C语言操作符众多,主要包括:算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、单目运算符、条件运算符、逗号运算符...C语言众多的运算符是它为人诟病的一个原因,但也是它众多的运算符提供了其他语言所无法比拟的优点。熟练使用运算符将使你工作中达到事半功倍的效果。 由于C语言运算符很多,本节主要先讲解前四种:算术运算符、关系运算符、逻辑运算符、赋值运算符,这四种运算符是我们用的最频繁的,几乎每
区间重合判断(C语言实现)
问题描述: 给定一个源区间[x,y](y>=x)和N个无序的目标区间[x1,y1],[x2,y2],[x3,y3],......[xN,yN],判断源区间[x,y]是不是在目标区间内? 例如给定源区间[1,6]和一组无序的目标区间[2,3],[1,2],[2,9],[3,4],即可认为区间[1,6]在区间[2,3],[1,2],[2,9],[3,4]内。 解决方法: 1.首先对无序的目标区
c语言学习笔记(8)位运算符,++,--运算符的用法
摘要:总结了位运算符,++,--运算符的用法,给出了一个使用异或方法巧解面试题的例子,分析了贪心法的规则。 一、位运算符用法     c语言中的位运算符主要有以下几种:         使用的时候主要有以下几个注意点:     1.左移运算符将     2.右移运算符将>>将运算数的二进位右移,低位丢弃,高位补零。     3.避免位运算符,逻辑运算符和数学运算符出现在同