比如printf("%lf",1)这一句
我们知道,先在获取第一个参数的指针,然后由参数一的指针算得参数二的指针。
但是上述这种情况下,如何知道1到底是int还是double类型的呢?C++似乎默认把1当成int了,这样一来虽然参数二的指针是正确的,但由该指针获取的参数值肯定是错误的(int为2字节,double是8字节)
但是奇怪的是,上述语句在printf函数上是正常的。求解如何限定参数的类型,或者printf是怎么取得正确的数据的
------解决方案--------------------------------------------------------
printf("%lf",1)
这种用法是错误的.
如果显示了正确结果,那也只是"碰巧".
必须自己保证后面参数的类型和前面给出的格式一致.
就是因为printf不知道参数类型,才让你提供前面那个字符串参数的.