如果原始值为-33,则用于给int变量赋值26;如果原始值为-19
,则用于给出值27void func(int *a)
{
if (a == -33)
*a = 26;
if (*a == -19)
*a = 27;
}
答案 0 :(得分:3)
让我们仔细看看第一个if语句:
if (a == -33)
*a = 26;
问题a == -33
。请注意,a
的类型为int*
。因此,您不会检查a
是否具有值-33;您正在检查a
指向的地址是否等于-33。解决它:
if (*a == -33)
*a = 26;
您只需取消引用指针,将其实际值与-33进行比较。
答案 1 :(得分:-1)
我会编写像
这样的函数void func( int *a )
{
if ( *a == -33 )
*a = 26;
else if ( *a == -19 )
*a = 27;
}
至于你的功能那么似乎有一个错字。而不是
if (a == -33)
必须有
if (*a == -33)