#include<stdio.h>
typedef struct student
{
char name[20];
int age;
}STU;
int main(){
STU boy;
// 结构体的地址=第一个成员的地址(但是类型不同)
printf("&boy=%p\n",&boy); //STU * 结构体指针
printf("&(boy.name)=%p\n\n",&(boy.name)); //char * 字符型指针
STU edu[3]={
{"张三",19},
{"李四",18},
{"王五",21}
};
//数组名=数组地址=数组第一个元素的地址=数组第一个元素的第一个成员的地址
printf("张三地址=%d\n", edu);
printf("张三地址=%d\n", &edu);
printf("张三地址=%d\n", &edu[0]);
printf("张三地址=%d\n\n", &(edu[0].name));
//数组第二个元素的地址=数组名+1=数组第一个元素的地址+1
printf("李四地址=%d\n", &edu[1]);
printf("李四地址=%d\n", edu+1);
printf("李四地址=%d\n",&edu[0]+1);
//如何访问数组第二个元素(也就是李四)呢?
printf("name=%s\n", edu[1].name);
printf("name=%s\n", (edu+1)->name);
printf("name=%s\n",(&edu[0]+1)->name);
return 0;
}
