在C语言中s->list是否与s.list相同
时间: 2024-06-11 16:10:31 浏览: 78
在C语言中,s->list与s.list不相同。
s->list是指向结构体s中名为list的成员的指针,而s.list是直接访问结构体s中名为list的成员。
例如,假设有以下定义的结构体:
```c
struct Example {
int list;
};
```
则以下代码:
```c
struct Example s;
s.list = 1;
struct Example* ptr = &s;
ptr->list = 2;
```
会将s中的list成员分别赋值为1和2。
但以下代码:
```c
struct Example* ptr = &s;
ptr.list = 3;
```
会引发编译错误,因为ptr是一个指针,不能像结构体一样直接访问成员。正确的方式应该是使用箭头运算符:
```c
ptr->list = 3;
```
阅读全文