C语言中位运算符 &、逻辑运算符 && 和取址运算符 & 的使用示例
已知 int a=1,b=2; int c,d,e; c=a&b; d=a&&b; e=&a&&b; 运算完成后,c、d、e 的值分别是:
- c 的值为 0,因为
&是按位与运算符,对 a 和 b 进行按位与运算,结果为 0。 - d 的值为 1,因为
&&是逻辑与运算符,对 a 和 b 进行逻辑与运算,由于 a 和 b 都非零,结果为 1。 - e 会引发编译错误,因为
&&是逻辑与运算符,而&a是对 a 进行取址操作,无法对地址值进行逻辑与运算。
代码示例:
int main() {
int a = 1, b = 2;
int c, d, e;
c = a & b; // 按位与运算
d = a && b; // 逻辑与运算
// e = &a && b; // 编译错误
printf("c = %d\n", c);
printf("d = %d\n", d);
// printf("e = %d\n", e); // 编译错误
return 0;
}
结论:
- 按位与运算符
&用于对操作数进行按位与运算。 - 逻辑与运算符
&&用于对操作数进行逻辑与运算。 - 取址运算符
&用于获取变量的地址,无法对地址值进行逻辑与运算。
原文地址: https://www.cveoy.top/t/topic/pjae 著作权归作者所有。请勿转载和采集!