读书人

coutlt;lt;printf(quot;%d,%d,%d“,a,b,c)所带

发布时间: 2013-07-01 12:33:04 作者: rapoo

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的返回值。。
话说这跟大小端什么关系

读书人网 >C++

热点推荐