[英]Assign array field within struct
recently i started working on C++ code and i was trying to communicate with an external library which has a struct defined as follows最近我开始研究 C++ 代码,我试图与一个外部库进行通信,该库的结构定义如下
struct StudentsInformation {
int student_count[10];
double total_marks[10];
double section_marks_average;
double class_marks_average;
};
I was trying to create a object for this struct as follows in a separate class我试图在单独的 class 中为此结构创建 object
int count[10] = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5};
double marks[10] = {10.0, 20.0, 30.0, 40.0, 50.0, 10.0, 20.0, 30.0, 40.0, 50.0};
StudentsInformation stuInfo = { count, marks, 68.8, 56.7 };
Compiling this provides following error编译它会提供以下错误
Cannot initialize an array element of type 'int' with an lvalue of type 'int [10]'
无法使用“int [10]”类型的左值初始化“int”类型的数组元素
not sure what i'm doing wrong.不知道我做错了什么。
This should compile fine, in either/both C and/or C++:这应该可以很好地编译,在 C 和/或 C++ 中的一个/两个中:
#include <stdio.h>
struct StudentsInformation {
int student_count[10];
double total_marks[10];
double section_marks_average;
double class_marks_average;
};
int main(int argc, char *argv[]) {
struct StudentsInformation si = {
{1, 2, 3, 4, 5, 1, 2, 3, 4, 5},
{10.0, 20.0, 30.0, 40.0, 50.0, 10.0, 20.0, 30.0, 40.0, 50.0},
68.8, 56.7
};
return 0;
}
The key part of the error message is "cannot convert an lvalue":错误消息的关键部分是“无法转换左值”:
https://en.cppreference.com/w/cpp/language/value_category
https://en.cppreference.com/w/cpp/language/value_category
lvalue :
左值:
the name of a variable, a function, a template parameter object (since C++20), or a data member, regardless of type, such as std::cin or std::endl.
变量的名称、function、模板参数 object(C++20 起)或数据成员的名称,无论类型如何,例如 std::cin 或 std::endl。 Even if the variable's type is rvalue reference, the expression consisting of its name is an lvalue expression;
即使变量的类型是右值引用,由其名称组成的表达式也是左值表达式;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.