1、优先级问题
void getSeconds(unsigned long *par);
int main ()
{
unsigned long sec;
getSeconds( &sec );
// 输出实际值
cout << "Number of seconds :" << sec << endl;
return 0;
}
void getSeconds(unsigned long *par)
{
*par = 0;
for(int i = 0;i<10;i++)
{
*par++;
//*par = *par +1;
std::cout << i << std::endl;
}
运行 *par++; 数值没有变化,*par = *par +1;有变化,优先级问题改成(*par) ++正常。
2、标准化后C++中,定义在for循环内部的变量,循环外部不可使用
int main()
{
int sum = 0;
for(int i = 0; i < 5; ++i)
{
sum += i;
}
i = 3; //报错,由于在标准化后C++中,定义在for语句头的变量,在for循环外是不可访问的。
return 0;
}编译报错显示:error: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]|
3、数据类型问题
double k = (346 - 313) / (744 - 339);
结果为0,double k = (346 - 313) / (744 - 339.0);结果正确输出