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

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

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

补充楼上的

&:位运算, 比如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就是指针变量
 **: 二级指针,指针的指针

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