C++ 如何在C+中初始化结构数组并使用指针访问每个元素+;

C++ 如何在C+中初始化结构数组并使用指针访问每个元素+;,c++,C++,在下面的程序中,我遇到了结构初始化的问题。初始化之后,我需要使用指针来计算每个结构元素 #include <iostream> using namespace std; struct student{ int rollno; float marks; char name[45]; }*ptr; int main(){ //Getting initialization error student s1[2]={1,50.23,"abc",2,65.54,"def"};

在下面的程序中,我遇到了结构初始化的问题。初始化之后,我需要使用指针来计算每个结构元素

#include <iostream>

using namespace std;

struct student{
int rollno;
float marks;
char name[45];
}*ptr;

int main(){

    //Getting initialization error
student s1[2]={1,50.23,"abc",2,65.54,"def"};

    for(int i=0;i<2;i++){

            //Need to cout using pointers
    cout<<s1[i].rollno<<s1[i].marks<<s1[i].name;
}
return 0;
}
#包括
使用名称空间std;
结构学生{
int-rollno;
浮标;
字符名[45];
}*ptr;
int main(){
//获取初始化错误
学生s1[2]={1,50.23,“abc”,2,65.54,“def”};

对于(int i=0;i您应该将数组的每个成员包装在
{}
中:

student s1[2]={{1,50.23,"abc"},{2,65.54,"def"}};

问题是…?@EdS。问题是关于如何初始化结构数组并通过指针访问每个结构元素。这里的工作原理是:顺便说一下,删除了C标记,因为C在处理此代码方面有很大的不同,特别是,您需要
struct student
而不是student,等等@jpalecek很高兴知道它可以工作,但为什么它会这样做它在EclipseIDE中工作吗?这是不必要的,更多的是一个样式问题。奇怪。它对我来说工作正常。(事实上,您的原始代码也是工作的,但编译器会打印缺少的
{}
的警告)