C语言结构体指针加一
时间: 2024-01-25 18:11:02 浏览: 144
C语言:结构体与结构体指针
C语言结构体指针加一会使指针指向下一个结构体变量。因为结构体中的所有组成部分都存放在一段连续的内存中,所以指向结构体的指针就是结构体第一个成员的地址。指针加一时,会根据结构体的大小自动增加相应的字节数,使指针指向下一个结构体变量的第一个成员的地址。下面是一个例子:
```c
#include <stdio.h>
typedef struct test {
int p1;
int p2[10];
int p3;
} test_struct;
int main() {
test_struct t1, t2; test_struct *p = &t1;
p->p1 = 1;
p->p2[0] = 2;
p->p3 = 3;
printf("t1: p1=%d, p2[0]=%d, p3=%d\n", t1.p1, t1.p2[0], t1.p3);
p++;
p->p1 = 4;
p->p2[0] = 5;
p->p3 = 6;
printf("t2: p1=%d, p2[0]=%d, p3=%d\n", t2.p1, t2.p2[0], t2.p3);
return 0;
}
```
输出结果为:
```
t1: p1=1, p2[0]=2, p3=3
t2: p1=4, p2[0]=5, p3=6
```
可以看到,通过指针p对结构体t1和t2进行了赋值,并且通过指针p对结构体进行了加一操作,使得指针p指向了下一个结构体变量。最后输出了t1和t2的各个成员的值。
阅读全文