gpt4 book ai didi

c++ - 分配给结构数组

转载 作者:太空狗 更新时间:2023-10-29 21:02:21 25 4
gpt4 key购买 nike

我有一个结构数组。我想做的是为这些结构的成员赋值。以下代码中的问题是什么...

#include <stdio.h>


typedef struct{
int a1;
int a2;

}sample;


main(){

sample ar[4]={
(1,2),
(3,4),
(5,6),
(7,8)
};

int i;
for(i=0;i<4;i++){
printf("ar[%d]----%d %d",i,ar[i].a1,ar[i].a2);
}
}

现在编译成功了,但是输出是

ar[0]----2  4 
ar[1]----6 8
ar[2]----0 0
ar[3]----0 0

而不是(或者可能是程序运行正常,我正遭受愚蠢的误解)

ar[0]----1  2
ar[1]----3 4
ar[2]----5 6
ar[3]----7 8

最佳答案

你写了:

sample ar[4];
ar[4] = {
(1,2),
(3,4),
(5,6),
(7,8)
};

数组初始化器的语法(仅在 ar初始化期间有效)是:

sample ar[4] = { 
{1,2},
{3,4},
{5,6},
{7,8}
};

C11 (n1570), § 6.7.9 Initialization

initializer:   
assignment-expression
{ initializer-list }
{ initializer-list , }

此外,indentation编写可读代码很重要。

关于c++ - 分配给结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15717845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com