今天在看基础是发现如下代码执行*tempa ++后竟然会出现随机数:
class shu
{
public:
void Out( int * tempa )
{
cout << "tempa值" << *tempa << endl;
*tempa ++;
cout << "tempa值" << *tempa << endl;
}
};
int main(int argc, char **argv)
{
int a = 1;
int *b = &a;
shu sss;
sss .Out(b ) ;
cout << a << endl;
system("pause");
return 0;
}
但是如果改成*tempa+=1 后正常输出。
后来才发现原来是*tempa要加上括号:(*tempa)。因为优先级的问题而引起的,诶,一不小心就
犯了个错,希望广大程序猿不要烦我这样的错误啊。
class shu
{
public:
void Out( int * tempa )
{
cout << "tempa值" << *tempa << endl;
*tempa ++;
cout << "tempa值" << *tempa << endl;
}
};
int main(int argc, char **argv)
{
int a = 1;
int *b = &a;
shu sss;
sss .Out(b ) ;
cout << a << endl;
system("pause");
return 0;
}
但是如果改成*tempa+=1 后正常输出。
后来才发现原来是*tempa要加上括号:(*tempa)。因为优先级的问题而引起的,诶,一不小心就
犯了个错,希望广大程序猿不要烦我这样的错误啊。