c语言代码中点和箭头的区别
时间: 2024-07-25 12:01:31 浏览: 46
在 C 语言中,"." 和 "->" 都用于访问结构体或联合类型的成员变量,但它们的作用和用法有所不同。
1. ".": 当我们有一个指向结构体或联合类型的指针,并想要访问它所指向的对象的成员时,通常使用 "dot" (.) 运算符。例如:
```c
struct Student {
char name[50];
int age;
};
struct Student* studentPtr; // 定义一个学生指针
studentPtr->name = "Alice"; // 使用 -> 访问成员
```
在这个例子中,`studentPtr->name` 等价于 `(*studentPtr).name`,即通过指针间接访问结构体的 name 成员。
2. "->": 如果指针本身是一个结构体类型的一部分,比如一个结构体成员也是一个指针,那么我们需要两次运算符来访问深层的成员。".-" 表示先解引用指针,再访问其成员。例如:
```c
struct Address {
char street[100];
int houseNumber;
};
struct Person {
char name[50];
struct Address* homeAddress; // 地址指针
};
Person person;
person.homeAddress->street = "No.1 Park Road";
```
这里 `person.homeAddress->street` 实际上是 `(*person.homeAddress).street` 的简写形式。
阅读全文