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

关于c数组

发布时间:2020-12-16 10:54:02 所属栏目:百科 来源:网络整理
导读:我知道你可以像这样在C中声明一个数组: int nums[5] = {0,1,2,3,4}; 但是,你能这样做吗? int nums[5];// more code....nums = { 0,5,2}; 换句话说,我可以在任何其他时间使用括号表示法初始化数组 不只是宣言? 谢谢你的时间, 山姆 解决方法 这在C89中是不
我知道你可以像这样在C中声明一个数组:

int nums[5] = {0,1,2,3,4};

但是,你能这样做吗?

int nums[5];
// more code....
nums = { 0,5,2};

换句话说,我可以在任何其他时间使用括号表示法初始化数组
不只是宣言?
谢谢你的时间,
山姆

解决方法

这在C89中是不可能的(大多数C编译器的目标). C99由少数人支持,并具有复合文字:

int nums[5];
memcpy(nums,(int[5]){1,4,5},5 * sizeof(int));

但是,您无法分配给数组.您只能复制到其内存.您需要在C89中复制的另一个阵列

int nums[5]; 
int vals[] = { 1,5 };
memcpy(nums,vals,sizeof vals);

请注意,sizeof运算符以字节为单位返回其操作数的大小.

(编辑:李大同)

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

    推荐文章
      热点阅读