📅  最后修改于: 2023-12-03 14:39:41.336000             🧑  作者: Mango
在 C 语言中,* 和 & 是两个非常重要的符号。他们都可以用于指针类型的变量,但是它们的含义是完全不同的。本文将介绍 * 和 & 在 C 语言中的区别。
在 C 语言中,* 可以表示两种含义:
int a = 2;
int b = 3;
int c = a * b;
// c 的值为 6
int a = 2;
int* p = &a; // p 指向 a 的地址
int b = *p; // 解引用 p,得到 a 的值,即 b = 2
在上述代码中,*p 表示指针 p 所指向的变量的值,即 a 的值,它等价于 a。
在 C 语言中,& 可以表示两种含义:
& 可以表示取地址符号,比如:
int a = 2;
int* p = &a; // p 指向 a 的地址
在上述代码中,&a 表示变量 a 的地址,它等价于 p。
& 还可以表示按位与符号,比如:
int a = 9; // 二进制表示为 1001
int b = 6; // 二进制表示为 0110
int c = a & b; // c 的值为 0000,即 0
在上述代码中,& 表示按位与运算符,它对应二进制的每一位进行与运算,只有当两个数都为 1 时才为 1,否则为 0。