a.b[i]!=NULL
时间: 2023-12-17 09:06:07 浏览: 71
`a.b[i] != NULL` 表示判断 `a.b[i]` 是否为 NULL(即指向空地址)。如果 `a.b` 是一个结构体指针数组,那么 `a.b[i]` 表示指向第 `i` 个元素的指针。因此,`a.b[i] != NULL` 的判断方式是判断第 `i` 个元素的指针是否为 NULL。
如果 `a.b` 是一个结构体数组,那么 `a.b[i]` 表示第 `i` 个元素的结构体实例。在这种情况下, `a.b[i] != NULL` 的判断方式是无意义的,因为结构体实例不可能为 NULL。
需要注意的是,如果 `a.b` 是一个结构体指针数组,那么在使用 `a.b` 之前需要先为其分配内存空间,并初始化数组中的每个元素为 NULL。否则,访问数组中的元素可能会导致未定义的行为。例如:
```
struct Example {
int value;
char name[20];
};
struct Example *a;
// 分配内存空间并初始化数组元素为 NULL
a = (struct Example*)malloc(sizeof(struct Example) * 10);
memset(a, 0, sizeof(struct Example) * 10);
// 判断第 i 个元素是否为 NULL
if (a[i] != NULL) {
// do something
}
```
这里定义了一个 `struct Example` 结构体,并声明了一个结构体指针 `a`。在使用 `a` 之前,先使用 `malloc` 分配了内存空间,并使用 `memset` 函数将所有元素初始化为 NULL。然后就可以使用 `a[i] != NULL` 来判断第 `i` 个元素是否为 NULL。
阅读全文