我很困惑为什么我收到这个警告:
我发起matchObsFlag:
int *matchObsFlag=0;
Run Code Online (Sandbox Code Playgroud)
但是当我运行这一行时:
if (matchObsFlag == 1)
Run Code Online (Sandbox Code Playgroud)
我收到了这个警告.有任何想法吗?
Lud*_*Zik 13
你肯定得到一个警告,因为你没有这样(int*) 1
做,所以你测试不同的东西之间的相等:一个地址和一个int.
所以它要么if(matchObsFlag == (int*)1)
或 if(*matchObsFlag == 1)
取决于你想做什么.
int *matchObsFlag=0;
Run Code Online (Sandbox Code Playgroud)
类型matchObsFlag
是int*
常量字面值的类型int
.不相关类型之间的比较导致警告.
matchObsFlag
是一个NULL指针.matchObsFlag
如果要比较指针指向的值,则需要指向有效的内存位置.
int number = 1;
matchObsFlag = &number;
Run Code Online (Sandbox Code Playgroud)
现在,要比较该值,您需要取消引用指针.所以尝试 -
if (*matchObsFlag == 1)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37150 次 |
最近记录: |