首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能简化下面的代码结构{int a[2];} arr[] ={1},{2}}吗?

有人能简化下面的代码结构{int a[2];} arr[] ={1},{2}}吗?
EN

Stack Overflow用户
提问于 2019-11-08 08:41:00
回答 2查看 337关注 0票数 0
代码语言:javascript
复制
struct {int a[2];} arr[] = {{1},{2}};

请简化上面的代码,特别是arr[] = {{1},{2}};部分,以及它与结构的关系。

- arr[] = {{1},{2}}初始化似乎是一个2d array,但是lvalue赋值是对1d array(arr[])进行的。再一次,如果我们调用a[2]arr[].a[2]将持有什么。

EN

回答 2

Stack Overflow用户

发布于 2019-11-08 08:50:45

代码语言:javascript
复制
struct {int a[2];} arr[] = {{1},{2}};

到目前为止,上面的初始化是不完整的,您应该会看到下面的警告

代码语言:javascript
复制
warning: (near initialization for ‘arr[0].a’)

正确的初始化是

代码语言:javascript
复制
struct {int a[2];} arr[] = {{{1}},{{2}}};
代码语言:javascript
复制
1.

   { { {1} },{ {2} }}
       ---
        |
         --------------> is for int arr[0].a[0] // in this case arr[0].a[1] will be not be initialized

2 

   { { {1} } , { {2} }} 
     -------   ------ 
        |        |
        |         ----> is for arr[1]
        --------------> is for arr[0]

3
   { { {1} } , { {2} }} 
   --------------------
             |
              ------------------> is for complete arr[]
票数 2
EN

Stack Overflow用户

发布于 2019-11-08 08:58:28

简化struct {int a[2];} arr[] = {{1},{2}};

代码语言:javascript
复制
struct quux {
    int a[2];
};

struct quux arr[2];
arr[0].a[0] = 1;
arr[0].a[1] = 0;
arr[1].a[0] = 2;
arr[1].a[1] = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58763109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档