关于C语言构造体数组初始化
关于C语言结构体数组初始化
假设这样一个数组
有一下初始化方式:
{0}和{}是一样的效果吗?会把结构体中的各种类型的变量赋值为相应的初始值吗?这个规定在哪里可以看到啊?
然后就是前面两者与后面的有什么区别吗?在作用上应该是相同的吧?
细节都不记得了,今天遇到问题了。。。。
------解决方案--------------------
{0}和{} 效果一样,{0}是第一个元素为0,剩下的时候默认值,{}则直接全使用默认值。
但C里面不允许{}这样初始化吧,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++是可以的
------解决方案--------------------