declaration of 'double p' shadows a parameter什么意思
时间: 2023-05-22 16:06:56 浏览: 110
这个错误提示意味着在函数中有一个叫做 p 的参数,但该函数的内部又定义了一个叫做 p 的 double 类型的变量,这导致了参数 p 被内部变量 p "遮蔽",编译器会认为你在函数内部使用了未定义的变量。
相关问题
declaration of 'LinkNode* L' shadows a parameter
这个错误意味着你在函数中定义了与参数同名的变量,从而“遮盖”了参数。例如:
```
LinkNode* reverseList(LinkNode* L) {
LinkNode* L = NULL; // 这里定义了一个与参数同名的变量 L,导致参数被遮盖了
// ...
}
```
为了解决这个错误,你需要将变量名修改为与参数不同的名称,例如:
```
LinkNode* reverseList(LinkNode* L) {
LinkNode* newL = NULL; // 将变量名修改为 newL
// ...
}
```
或者,你可以考虑删除这个变量定义,直接使用参数 L。
怎么修改declaration of 'int a [30][30]' shadows a parameter
这个警告表示函数的参数和函数内部的变量同名了,建议将函数内部的变量名修改一下,或者在变量名前加上其他的字符以区分。例如:
```c++
void myFunction(int a[30][30]) {
// 将函数参数a修改为arr,避免和函数内部的变量同名
int arr[30][30];
// ...
}
```
或者:
```c++
void myFunction(int a[30][30]) {
// 在函数内部变量名前加上其他字符以区分,例如加上下划线
int a_[30][30];
// ...
}
```
这样可以消除警告,避免出现意外的错误。
阅读全文