C语言中最指针定义与赋值中,*和&运算符有什么区别
时间: 2024-03-27 12:38:01 浏览: 14
在 C 语言中,`*` 和 `&` 运算符都与指针有关,但是它们的作用不同。
`*` 运算符用于定义指针变量和访问指针所指向的变量。例如:
```c
int *p; // 定义一个指向 int 类型的指针变量 p
int a = 10;
p = &a; // 将变量 a 的地址赋值给指针变量 p
int b = *p; // 将指针 p 所指向的变量的值赋值给变量 b
```
在上面的例子中,`*p` 表示指针 p 所指向的变量,`&a` 表示变量 a 的地址,`p = &a` 表示将变量 a 的地址赋值给指针变量 p。
`&` 运算符用于取变量的地址。例如:
```c
int a = 10;
int *p = &a; // 将变量 a 的地址赋值给指针变量 p
```
在上面的例子中,`&a` 表示变量 a 的地址,`&a` 的值被赋值给指针变量 p,p 就指向了变量 a。
因此,`*` 运算符和 `&` 运算符是互相对应的,`*` 运算符用于访问指针所指向的变量,而 `&` 运算符用于取变量的地址。
相关问题
在指针里*和&有什么区别
在C语言中,*和&都是指针运算符,但它们的作用是相反的:
*用于解引用指针,即获取指针所指向的变量的值。
&用于取地址,即获取变量的地址,返回一个指向该变量的指针。
例如:
```C
int a = 5;
int *p = &a; // &取a的地址并赋值给p,p指向a
int b = *p; // *解引用p,获取p指向的a的值并赋值给b
```
在上面的示例中,&用于获取a的地址,*用于获取p指向的a的值。
c语言中,定义 double a,*p=&a; *号是一个地址运算符吗?
在C语言中,*号不是地址运算符,而是指针运算符。地址运算符是&,用于获取变量的地址。
在你的例子中,&a是使用地址运算符获取变量a的地址,将其赋值给指针变量p。而*p是使用指针运算符获取指针p所指向的变量的值,即a的值。
请注意,指针变量p和变量a虽然都存储了同一个内存地址,但它们的类型不同。指针变量p的类型是指向double类型变量的指针,而变量a的类型是double。因此,在使用指针p访问变量a的值时,需要使用指针运算符*。