C语言 结构体变量地址
#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; }