首页 > 代码库 > 定义结构体时的初始化默认值
定义结构体时的初始化默认值
结构体变量定义时的初始化问题:
默认值同变量一样。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; };
这样是没有初始值的
定义结构体时的初始化默认值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。