首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C语言构造体数组初始化

2012-09-18 
关于C语言结构体数组初始化假设这样一个数组C/C++ codestruct st {char c[20]int idouble dlonglchar

关于C语言结构体数组初始化
假设这样一个数组

C/C++ code
    struct st {       char c[20];       int i;       double d;       long  l;       char a;       char *p;    };struct st test[100];

有一下初始化方式:
C/C++ code
struct  st  test_st[10]={0};struct  st  test_st[10]={};memset( test,0x0,sizeof(test) );

{0}和{}是一样的效果吗?会把结构体中的各种类型的变量赋值为相应的初始值吗?这个规定在哪里可以看到啊?
然后就是前面两者与后面的有什么区别吗?在作用上应该是相同的吧?

细节都不记得了,今天遇到问题了。。。。



[解决办法]
{0}和{} 效果一样,{0}是第一个元素为0,剩下的时候默认值,{}则直接全使用默认值。

但C里面不允许{}这样初始化吧,C++是可以的

[解决办法]
探讨

引用:

{0}和{} 效果一样,{0}是第一个元素为0,剩下的时候默认值,{}则直接全使用默认值。

但C里面不允许{}这样初始化吧,C++是可以的

{0}和{}编译都是通过的,按照你的说法{0}(数组初始化)是把0赋值给了第一个结构体,对于结构体的元素是怎么样的呢?

热点排行