码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-10 17:23:06      阅读:442      评论:0      收藏:0      [点我收藏+]

标签:c   c++   链表   结构体   初始化   

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

默认值同变量一样,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++   链表   结构体   初始化   

原文地址:http://blog.csdn.net/xueruifan/article/details/46443645

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!