1.首先构建一个结构体
typedef struct {
int val = 0;
}num;
2.然后使用该结构体进行定义
/*1.指针定义*/num * i = (num *)malloc(sizeof(num) * 5);
if (!i)
exit(-1);
/*2.非指针定义*/num j[5];
3.我认为输出的val值应该都为0,因为创建结构体时就给val赋值,但是结果却是下面这样的
4.结论:
我觉得应该是指针是指向一块空间地址,上述指针就是指向一块类型为num型的空间地址,但是目标空间里面还未初始化,所以val值不为0;但是非指针类型就是很明确的划分了一块空间用来创建num型的数据,所以里面的val值为0。前者是指向一块num型地址,并非创建一个num数据,这块地址可能始终没有num型数据;后者则是创建一个确定的num型数据。