#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];
该篇博客通过C语言代码展示了结构体Node、int、Node指针以及结构体数组point的字节大小,并打印了结构体数组a及其各个元素的字节大小和内存地址,揭示了C语言中数据类型占据内存的规律。
2379

被折叠的 条评论
为什么被折叠?



