error: invalid type argument of unary '*' (have 'double') 17 | int s=P*r*r; | ^~
时间: 2024-02-26 21:55:50 浏览: 176
这个错误通常出现在尝试对不是指针的变量进行取值操作时。在这个错误信息中,出现了"invalid type argument of unary '*' (have 'double')",说明在程序的第17行中,尝试对一个double类型的变量进行取值操作,而这是不合法的。
在这个具体的代码行中,似乎是对一个double类型的变量r进行了取值操作。需要注意的是,取值操作(*)在C/C++中通常用于指针类型变量,而对于普通的数据类型(如double、int等)是不需要使用取值操作的。因此,可以尝试删除这个错误行中的"*"符号,将代码修改为"int s = P * r * r;",即可解决这个错误。
相关问题
../PCIE.cpp:107:45: error: invalid conversion from ‘int*’ to ‘PDIAG_DMA’ {aka ‘int’} [-fpermissive] 107 | DeviceClose(pcie_init[handle].hDev, &pcie_init[handle].dma); | ^~~~~~~~~~~~~~~~~~~~~~ | | | int*
这个错误提示是因为在 PCIE.cpp 文件的第 107 行中,将一个 int* 类型的指针赋值给了 PDIAG_DMA 类型的变量,这是一种无效的类型转换。可能需要检查代码中的类型定义和变量声明,以确保类型匹配。如果需要更具体的帮助,可以提供更多的代码信息。
[Error] invalid type argument of unary '*' (have 'int')
这个错误通常是因为你在使用解引用运算符(*)时,将其应用于一个不是指针类型的变量上。解引用运算符用于访问指针所指向的内存地址上的值。
根据你提供的错误信息,错误发生在对一个整数类型变量使用了解引用运算符。但是,解引用运算符只能应用于指针类型的变量。
要解决这个问题,你需要确保在使用解引用运算符之前,将其应用于指针类型的变量。例如,如果你想访问一个指针所指向的值,你可以这样做:
```cpp
int* ptr; // 声明一个指向整数类型的指针
int value = *ptr; // 使用解引用运算符获取指针所指向的值
```
请检查你的代码,确保你正在正确地使用解引用运算符,并将其应用于指针类型的变量。
阅读全文