#include <stdio.h>
typedef struct Node{
int data;
struct Node* node;
}point[5];
int main() {
printf("Node结构体所占字节大小为:%d\n",sizeof(struct Node));
printf("int所占字节大小为:%d\n",sizeof(int));
printf("Node*所占字节大小为:%d\n",sizeof(struct Node*));
printf("point 所占字节大小为:%d\n",sizeof(point));
printf("\n");
point a;
printf("a结构体数组所占字节大小为:%d,\t指针a内存地址为:%p\n",sizeof(a),a);
for(int i = 0;i<5;i++){
printf("a[%d]所占字节大小为:%d,\t内存地址为:%p\n",i,sizeof(a[i]),&a[i]);
}
return 0;
}
程序输出:
Node结构体所占字节大小为:8
int所占字节大小为:4
Node*所占字节大小为:4
point 所占字节大小为:40
a结构体数组所占字节大小为:40, 指针a内存地址为:0061FEA4
a[0]所占字节大小为:8, 内存地址为:0061FEA4
a[1]所占字节大小为:8, 内存地址为:0061FEAC
a[2]所占字节大小为:8, 内存地址为:0061FEB4
a[3]所占字节大小为:8, 内存地址为:0061FEBC
a[4]所占字节大小为:8, 内存地址为:0061FEC4
typedef struct Node{
int data;
struct Node* node;
}point[5];
实际上相当于定义了一个含有5个结构体元素的结构体数组struct Node[5],并给这个结构体取了一个别名point,point a相当于struct Node a[5];