为什么n1和n2的值不一样?不应该都为64吗?
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
char name[64];
int age;
int id;
}Teacher;
int main(void)
{
Teacher t1;
printf("%d\n", sizeof(Teacher));
Teacher* p = NULL;
p = &t1;
int n1 = (int)((&p->age) - p);
//printf("%p, %d\n", p, (int)p);
//printf("%p, %d\n", &p->age,(int)&p->age);
int n2 = (int)(&p->age) - (int)p;//相对于结构体首地址
printf("n1 = %d\n", n1);
printf("n2 = %d\n", n2);
return 0;
}