偶然发现cout和printf两种输出的结果竟然不一样,是一个非常简单的例子:
#include<iostream>
using namespace std;
int main()
{
double dval= 7;
double* p1 = &dval;
printf("*p1 = %d\n",*p1);
cout << "*p1 = "<<*p1;
system("pause");
return 0;
}
输出结果如下:
很明显printf输出的结果不正确,查了printf和cout的区别后才明白,cout能够自动根据变量的类型来输出相应的结果,而printf输出的时候我们需要指定输出类型,而且这个类型必须是变量的类型,要不然就容易出错。所有讲printf("%d",*p1)中的%d修改为%f就可以了。