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)者结果为假。
2、运算符,按位与运算符。
别人已经回答过,你可以先看看。ps:估计他写错字了,是取地址,不是取值
http://zhidao.baidu.com/link?url=vvj9OX5_jIigB8g_4ESCQZ-ttysfbSo4MdKH1uA9k0q8jg96C2YUFt0AT8e8rSpLNNPxu2gsPeYWmU3z_H0xfK
一、按位与
用法:a & b
原理:将两个整数转换为二进制,每一位进行比较,只有当两个数位上的数都为 1 时,结果那一位才是 1,否则为 0。
示例:48836 & 28719
1011111011000100
0111000000101111
结果为:
0011000000000100
即 12292。
二、取地址
用法:&a
原理:得到变量所在的内存地址。
示例:
int a = 7;
int *p = &a;
此时 p 的值就是 a 所在的内存地址。