关于结构初始化!谢谢!

dzy1982 2006-07-27 10:48:54
struct data
{
int a;
int b;
char c[10];
char *p;
}data1 = {0};
这样是不是整个结构data1所有的域都为0?
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-07-28
  • 打赏
  • 举报
回复
data1 = {0};
==============
这样的初始化,
使得内存中的数据都是 0,
但是要注意一下这个 0 的不同意义:

对 int , 就是数据 0;
对 char, 就是字符串终结符号 '\0' (0 = '\0') (相当于是一个全为'\0' 的空串)
对 指针, 就是 NULL
a_b_c_abc7 2006-07-28
  • 打赏
  • 举报
回复
试一下就知道了。
我啃 2006-07-28
  • 打赏
  • 举报
回复
就是将一个0数值转换成多个类型的0数值是一样的都是0
bombwang 2006-07-27
  • 打赏
  • 举报
回复
楼上的说得好
chenhu_doc 2006-07-27
  • 打赏
  • 举报
回复
#include <stdio.h>

struct data
{
int a; //初始化为0
int b; //初始化为0
char c[10]; //初始化为0,以为是从 0 隐式的转换到了ascii码,初始化亦为空
char *p; //没有对p初始化,所以结果是*p指向为空
}data1 = {0};


void main()
{
printf("%d\n%d\n%s\n%s",data1.a,data1.b,data1.c,data1.p);
}

---------------------
output::

0
0

(null)Press any key to continue
lei001 2006-07-27
  • 打赏
  • 举报
回复
是的

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧