在c语言中,(星号)用于间接寻址和取值,而&(地址符)用于取地址和引用。获取变量或指针指向的值,用于修改值和声明指针变量;&获取变量地址,用于分配地址给指针变量和传递地址作为函数参数。
C语言中*与&的区别
符号*和&在C语言中是不同的运算符,用于不同的目的:
含义:
- 星号*:表示间接寻址或指针取值运算符。
- 地址符&:表示取地址或引用运算符。
用途:
星号*:
- 获取变量或指针指向的变量的值。
- 修改变量或指针指向的变量的值。
- 作为指针变量的声明的一部分。
地址符&:
- 获取变量的地址(内存位置)。
- 将变量的地址分配给指针变量。
- 传递变量的地址作为函数参数。
示例:
<code class="C">int main() {
int x = 10;
int *ptr = &x; // ptr指向x的地址
// 获取x的值
printf("x = %d\n", x);
// 使用指针获取x的值
printf("*ptr = %d\n", *ptr);
// 使用指针修改x的值
*ptr = 20;
printf("x = %d\n", x); // x的值已经改变为20
return 0;
}</code>
注意:
- *ptr表示指针变量ptr指向的变量的值,而&x表示变量x的地址。
- 通常情况下,指针变量是一个类型为“变量类型*”的变量,指向特定类型的变量。
- 取地址和间接寻址运算符可以组合使用来实现指针算术和其他高级数据结构。
以上就是c语言中*与&的区别的详细内容,更多请关注编程网其它相关文章!