&在c语言中是什么意思

如题所述

两个运算符摆放在一起。

“=”是赋值运算符,“!”逻辑非运算符,逻辑操作符一般将其操作数视为条件表达式,返回结果为Bool类型:首先对其操作数求值,若结果为0,则条件为假(false),否则为真(true)

优先级上“!”先于“=”,int i;i=!5;

1.根据运算符优先级,!先于=

2.首先5作为!的操作数,求值!5的结果是bool型的false

3.然后false隐士转换成int型,即0

4.所以i里面的值是整形0

通常我们说话是加&表示“与”,比如Jake & Tom,C语言里&较为基础的一个使用就是“按位与”,它用在数据与数据之间进行运算(注意,它与【逻辑与】“&&”不同),比如十六进制a=0x10&0x01=0x00,而逻辑与的结果则是a=0x10&&0x01=1(TRUE);

第二个就是作为取地址符,这时候他用于数据的前面,比如int a=&b;

C++里还使用&作为引用符,如果你确认程序是标准的C而非C++的话,那么可以排除是引用了。引用也用于数据前面,它只在定义和声明时使用,如int &othername=name;

int &a=b; //定义时使用在等号左侧,是引用

int *a=&b; //在等号右侧,并单独在数据之前,是取地址

int a=(&b) & 0xffff; //第一个&是用于取b的内存中的地址,第二个&是按位与,即保留b地址值的低16位,高16位数值被清零(32位处理器下)。

取地址:int *b=&a;/*取a的地址给b指针*/

scanf("%d",&a);/*输入的时候取a的地址,也就是在a的地址输入数据*/

引用:函数里面int sport(int *&a){}/*引用a指针,表示可以修改a的值*/

int &b=a;/*引用a的别名,也就是说给a另起一个名,和a等价使用,但b不占用内存空间*/

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-13
第2个回答  2021-09-23
你没有具体描述,有关&符号几种情况:
1、一个&:位运算符号->对比两个二进制值,生成一个新的值,相同位索引都是1,结果值的对应位置位索引值得1,否则得0
2、就是用于取变量的地址,由指针指向
3、两个&符号:一般用去判断 用于连接另外一个条件本回答被网友采纳
相似回答