c语言结构体什么时候用->,什么时候用.
时间: 2023-08-21 10:10:47 浏览: 54
在C语言中,结构体变量可以通过"."或"->"来访问其成员变量。其中,"."是用于访问结构体变量的成员变量的运算符,而"->"是用于访问结构体指针变量的成员变量的运算符。
使用"."操作符来访问结构体变量的成员变量,例如:
```
struct student {
char name[20];
int age;
};
struct student s1;
s1.age = 18;
```
使用"->"操作符来访问结构体指针变量的成员变量,例如:
```
struct student {
char name[20];
int age;
};
struct student *ps;
ps = (struct student *)malloc(sizeof(struct student));
ps->age = 18;
```
需要注意的是,如果结构体变量是一个指针,则必须使用"->"操作符来访问其成员变量。如果结构体变量是一个非指针变量,则必须使用"."操作符来访问其成员变量。
相关问题
c语言的结构体.和->
回答: 在C语言中,结构体的成员引用可以使用`.`和`->`两种方式。引用\[1\]中给出了一个结构体指针的定义示例,通过`->`符号可以方便地引用结构体指针所指向的结构体的成员变量。而引用\[2\]中的例子展示了使用`.`和`->`符号引用结构体成员变量的不同方式。使用`.`符号需要对结构体进行解引用,而使用`->`符号则可以直接引用结构体指针所指向的结构体的成员变量。引用\[3\]指出,结构体指针在C语言中被广泛使用,为了方便编程人员的使用,C语言提供了`->`符号来简化结构体成员的引用操作。
#### 引用[.reference_title]
- *1* [C语言结构体.和->](https://blog.csdn.net/dont_curry/article/details/104348116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [C语言基础 --- 结构体中的.和->的区别与联系](https://blog.csdn.net/wit_732/article/details/120253187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
c语言结构体.和->
C语言中的结构体是一种用户定义的数据类型,可以将多个不同类型的变量组合在一起,形成一个单独的数据单元。结构体的定义使用关键字`struct`,并使用大括号`{}`来包围成员变量。
下面是一个示例的结构体定义:
```c
struct Person {
char name[20];
int age;
float height;
};
```
上述代码定义了一个名为`Person`的结构体,它包含了一个字符数组`name`、一个整型变量`age`和一个浮点型变量`height`。
在使用结构体时,可以通过以下方式声明结构体变量并进行初始化:
```c
struct Person p1; // 声明一个Person类型的结构体变量p1
p1.age = 25; // 对结构体成员进行赋值
strcpy(p1.name, "John");
p1.height = 175.5;
// 或者可以使用以下方式声明结构体变量并进行初始化
struct Person p2 = {"Alice",30, 162.0};
```
通过使用箭头操作符`->`,可以方便地访问结构体指针所指向的成员。例如,如果有一个指向结构体的指针变量`ptr`,可以使用`ptr->member`来访问指针所指向的结构体的成员。
下面是一个使用箭头操作符的示例:
```c
struct Person *ptr = &p1; // 将结构体变量p1的地址赋给指针ptr
printf("Name: %s\n", ptr->name); // 访问结构体指针ptr所指向的name成员
printf("Age: %d\n", ptr->age); // 访问结构体指针ptr所指向的age成员
printf("Height: %.1f\n", ptr->height); // 访问结构体指针ptr所指向的height成员
```
通过箭头操作符`->`可以更方便地操作结构体指针的成员。