一些常用编程经验

一些常用编程经验(持续补充)

1.因乘积因子过于太小,想成导致下溢问题或浮点数舍入导致错误

  由于大部分因子都非常小,所以程序会下溢出或者得到不正确答案。在代数中有ln(a*b) = ln(a) + ln(b),于是通过对数可以避免下溢出或者浮点数舍入导致的错误。同时,采用自然对数进行处理不会有任何损失。自然ln不会影响函数的单调性。

2.数组的不同声明方式,初始化的值不同

 1     int parray[10];//初始化时由不确定的值填充
 2     int *p_int = new int[10]();//初始化由0进行填充,即有类型type的默认值进行填充,int做累整形类使用,又是数值型,所以会用0进行填充
 3     int i;
 4     for (i = 0; i < 10; i++)
 5     {
 6         cout << parray[i] << "	";
 7     }
 8     for (i = 0; i < 10; i++, p_int++)
 9     {
10         cout << *p_int << "	";
11     }

  输出:

    -858993460 -858993460 -858993460 -858993460 -858993460
    -858993460 -858993460 -858993460 -858993460 -858993460
    0 0 0 0 0 0 0 0 0 0

原文地址:https://www.cnblogs.com/icmzn/p/4910470.html