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

Posted jzdwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义结构体时的初始化默认值相关的知识,希望对你有一定的参考价值。

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

默认值同变量一样。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;
};

这样是没有初始值的















以上是关于定义结构体时的初始化默认值的主要内容,如果未能解决你的问题,请参考以下文章

C++ 结构体如何初始化

C 语言结构体 ( 结构体类型定义 | 结构体类型别名 | 声明结构体变量的三种方法 | 栈内存中声明结构体变量 | 定义隐式结构体时声明变量 | 定义普通结构体时声明变量 )

结构体指针

C#学习笔记6

c++ builder 鼠标移开窗体时的事件

子父类中的构造函数