C语言中什么时候用 &

如题所述

1、取变量地址的时候用。

2、运算符,按位与运算符。

&表示两种运算符。其中一种表示取值运算符,一种是按位与取值运算符。
int a=1;
int *p=&a; //其中&a表示的就是把a中的地址取出来,然后赋给指针变量,也就是说&a表示的是变量a在内存中的地址。你可以使用printf函数输出这个地址。

按位与运算符。
比如a&b;表示把a和b进行二进制的按位与运算。
比如8&10,其中8的二进制是0000 1000,而10的二进制是0000 1010,因此0000 1000(十进制8)
& 0000 1010(10进制10),结果为0000 1000(就是10进制的8),因此8&10的结果为8。

与的计算规则是,如果两个数都都为真(或为1),其结果为真,如果两位数中有一位为假(或为0)者结果为假。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-01
1、取变量地址的时候用;
2、运算符,按位与运算符。

别人已经回答过,你可以先看看。ps:估计他写错字了,是取地址,不是取值
http://zhidao.baidu.com/link?url=vvj9OX5_jIigB8g_4ESCQZ-ttysfbSo4MdKH1uA9k0q8jg96C2YUFt0AT8e8rSpLNNPxu2gsPeYWmU3z_H0xfK本回答被提问者和网友采纳
第2个回答  2023-02-11

一、按位与

用法:a & b

原理:将两个整数转换为二进制,每一位进行比较,只有当两个数位上的数都为 1 时,结果那一位才是 1,否则为 0。

示例:48836 & 28719

1011111011000100

0111000000101111

结果为:

0011000000000100

即 12292。

二、取地址

用法:&a

原理:得到变量所在的内存地址。

示例:

int a = 7;
int *p = &a;

此时 p 的值就是 a 所在的内存地址。