c语言中关于结构体1
发布网友
发布时间:2023-10-20 09:11
我来回答
共3个回答
热心网友
时间:2024-10-23 04:34
#include<stdio.h>
struct tt
{
int x;
struct tt *y;
} *p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17a};
/*这里初始化之后a[0].x=20,a[0].y=a+1,依次类推*/
main()
{
int i;
p=a; //这里把a的值赋给p,a是什么?a是数组名,是个指针,就是a[0]的地址
for(i=1;i<=2;i++)
{
printf("%d,",p->x); // 第一次循环这里输出p->x,实际就是输出a[0].x的值,也就是20
p=p->y; // 第一次循环,p=a,所以p->y就是a[0].y,即p=a+1,a+1是什么?a是个指针,指针+1,就是下一个指针,也就是a[1]的地址了,所以第二次循环时,p->x就是a[1].x,即15
}
}
热心网友
时间:2024-10-23 04:35
这是一个链表结构,那个结构体里边,定义了struct tt *y,赋值的时候,struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};刚开始的a[0]里边,x=20,y=a+1,也即a[1]的地址,就是这么赋值下去的。所以,main()
{int i;p=a;这里p指向a数组第一个元素地址,p=p->y;到这句之后就指向了下一个地址,明白了吗?
热心网友
时间:2024-10-23 04:35
定义的结构体如果是指针,访问成员时就用->
如果定义的是结构体变量,访问成员时就用.
例如:
struct AAA {
int a;
char b;
};
struct AAA q; 访问成员就用:q.a;
struct AAA *p; 访问成员就用:p->a;
以上回答你满意么?