cout<<printf("%d,%d,%d“,a,b,c)所带来的困惑(小端模式下)
#include <iostream>
using namespace std;
void main()
{
long long a=1,b=2,c=3;
cout<<printf("%d,%d,%d\n",a,b,c);
printf("%d,%d,%d\n",a,b,c);
system("pause");
}
输出1,0,2
61,0,2
求解释,谢谢~
1,0,2输出我是这样理解的:
a,b,c八个字节,压栈c,b,a然后4个字节4个字节这样取出,又是小端模式,所以低位存低位,高位存高位
因而依次1,0,2出栈
61,0,2是怎么回事呢?
[解决办法]
输出是
1,0,2
6
你确定你有运行过
........
printf 必须在cout之前进行求值
[解决办法]
printf的返回值为printf控制输出的字符数,对于
printf("%d,%d,%d\n",a,b,c);输出的是"0,1,2\n"共6个字符,所以返回值为6。。
[解决办法]
6是必然会输出的,那是printf的返回值。。
话说这跟大小端什么关系