如何理解 c语言中的 * 和 ->运算符
时间: 2024-02-12 12:07:15 浏览: 127
C语言中的 * 和 -> 运算符都是指针操作符,用于访问指针所指向的对象的值或成员。
* 运算符被称为解引用运算符,用于获取指针所指向的对象的值。例如,如果有一个指向整型变量的指针 ptr,我们可以通过 *ptr 来获取该整型变量的值。示例代码如下:
```c
int num = 100;
int *ptr = # // 定义指向整型变量 num 的指针 ptr
int value = *ptr; // 解引用 ptr,获取 num 的值
printf("%d\n", value); // 输出 100
```
-> 运算符则是一个结构体或类的成员访问运算符,用于访问指针所指向的结构体或类的成员。例如,如果有一个指向结构体的指针 p,结构体中有一个成员变量 x,我们可以通过 p->x 来访问该成员变量的值。示例代码如下:
```c
struct MyStruct {
int x;
};
struct MyStruct st = {10};
struct MyStruct *p = &st; // 定义指向结构体变量 st 的指针 p
int value = p->x; // 访问结构体成员 x 的值
printf("%d\n", value); // 输出 10
```
需要注意的是,-> 运算符本质上是对 * 运算符和 . 运算符的简化,即 p->x 等价于 (*p).x。因此,使用指针来访问结构体或类的成员时,可以根据习惯选择使用 -> 运算符或 * 和 . 运算符的组合。
阅读全文