定义结构体时的初始化默认值

结构体变量定义时的初始化问题:

默认值同变量一样,int型的为0,指针型的为“NULL”————并不是整个结构体为NULL,其中的int型还是有值0的,只是指针型的为NULL

验证一下:

#include "stdafx.h"struct stu{int data;char *name;}boy1,girl={102,"xiaom"};int _tmain(int argc, _TCHAR* argv[]){printf("Number=%d\nName=%s\n",boy1.data,boy1.name);printf("Number=%d\nName=%s\n",girl.data,girl.name);boy1=girl;printf("Number=%d\nName=%s\n",boy1.data,boy1.name);printf("Number=%d\nName=%s\n",girl.data,girl.name);return 0;}输出结果为:

同理,,链表的节点如果只是定义而未赋值的话,它的data为0,指针为null

但是,初始化的值是不确定的,需要自己清空。一般是会初始化为0,但建议不要依赖自动初始化,自己动手清空,比较保险。

全局的变量会自动清空,但是局部的话,还是自己手动清空的!

另外,如果只是声明的话,编译器是不会为此声明分配空间的

如下:

struct stu{int data;char *name;};这样是没有初始值的

你写PPT时,阿拉斯加的鳕鱼正跃出水面,

定义结构体时的初始化默认值

相关文章:

你感兴趣的文章:

标签云: