加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C struct数组初始化

发布时间:2020-12-16 10:31:11 所属栏目:百科 来源:网络整理
导读:还行吧: int vec_1[3] = {1,2,3}; 那有什么不对 struct arrays{ int x[3]; int y[3]; int z[3];};arrays vec_2;vec_2.x = {1,3}; 这给了 ????错误:无法在赋值时将’大括号括起来的初始化列表‘转换为’int’ 我已经阅读了很多关于此错误的帖子,但目前还不
还行吧:

int vec_1[3] = {1,2,3};

那有什么不对

struct arrays{
  int x[3];
  int y[3];
  int z[3];
};
arrays vec_2;
vec_2.x = {1,3};

这给了
????错误:无法在赋值时将’<大括号括起来的初始化列表>‘转换为’int’

我已经阅读了很多关于此错误的帖子,但目前还不清楚问题出在哪里.

解决方法

首先是初始化.第二种是尝试分配,但是数组不可分配.

你可以这样做:

arrays vec_2 = {{1,3},{3,4,5},{4,5,6}};

如果您只想初始化vec_2.x,那么您可以省略其余的初始值设定项:

arrays vec_2 = {1,3};

在这种情况下,vec_2的其余部分将被初始化为包含零.

虽然您必须在初始化程序周围包含至少一组大括号,但如果您不想,则不必包含“内部”大括号.包括它们可以给你一点额外的灵活性.例如,如果要初始化vec_2.x中的前两个项目和vec_2.y中的第一个项目,可以使用:

arrays vec_2 = {{1,2},{3}};

在这种情况下,您将设置vec_2,就好像您使用了{1,3,0};作为初始化器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读