c - 将 double* 添加到 double 变量

标签 c pointers struct double

我目前正在开发一个程序,该程序将您的姓名、地址、学校成绩等作为输入,并计算 f.e. 的平均分。主题 APHM。

任何人都可以解释为什么使用指针将值添加到变量中不起作用吗?

提前致谢!

double avgINF=0, avgAPHM=0, ...;

struct adresse{
            char vorname[50];
            char nachname[50];
            char strasse[50];
            char hausnr[50];
            char tuer[10];
            char ort[50];
            char plz[10];
            double noteAPHM[1];
            double noteINF[1];
        } adressen[41];

avgINF += adressen[i-1].noteINF;

错误:二进制表达式的操作数无效 (double*)

最佳答案

欢迎来到该网站!如果 noteINF 应该只保存一个值,则应该是 double noteINF; 而不是 double noteINF[1];。对于单个值,您不需要数组([1] 后缀)。

至于您的错误消息,noteINF[1] 是一个数组。在上面的代码上下文中,数组的名称充当指向数组第一个元素的指针。因此,noteINF 的行为类似于 double *(指向 double 的指针),而 noteINF[0] 是一个 double(数组的第一个元素)。网上有很多关于 C 数组和指针的教程,因为几乎每个人都会在某些时候遇到它们。祝你好运!

关于c - 将 double* 添加到 double 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37860568/

相关文章:

c - 打印文件每行的 m 到 n 列

c - 访问二叉搜索树节点时出现段错误

c - 使用指针在结构中输入

c++ - 在 C++ 中通过指针设置/获取值

c++ - 类型转换与 memcpy() : which one is better?

c - 在一个 block 中定义和声明结构与声明然后定义结构之间是否存在明显差异?

c - 为包含另一个结构数组的结构正确分配内存

c++ - 从多项式函数字符串动态分配数组

C 如何在使用 struct* = struct 时解析不兼容指针类型的赋值

c - 从内部结构到相同类型的其他结构的指针数组