主题:相同的参数cout与printf为什么打印了不同的东西啊?
用C写的源码及输出情况:
#include <stdio.h>
typedef char* byte_pointer;
//显示各个字节中存储的内容
void show_bytes(byte_pointer start,int len)
{
int i;
for (i=0;i<len;i++)
printf("%.2x\n",start[i]);
}
//显示int型数据各个字节中的存储情况
void show_int(int x)
{
show_bytes((byte_pointer) &x,sizeof(int));
}
void main()
{
int a1=12345;
show_int(a1);
}
输出:
39
30
00
00
c++的源码及输出:
#include <iostream.h>
typedef char* byte_pointer;
//显示各个字节中存储的内容
void show_bytes(byte_pointer start,int len)
{
int i;
for (i=0;i<len;i++)
cout<<start[i]<<endl;
}
//显示int型数据各个字节中的存储情况
void show_int(int x)
{
show_bytes((byte_pointer) &x,sizeof(int));
}
void main()
{
int a1=12345;
show_int(a1);
}
输出:
9
0
请问这是为什么啊?
#include <stdio.h>
typedef char* byte_pointer;
//显示各个字节中存储的内容
void show_bytes(byte_pointer start,int len)
{
int i;
for (i=0;i<len;i++)
printf("%.2x\n",start[i]);
}
//显示int型数据各个字节中的存储情况
void show_int(int x)
{
show_bytes((byte_pointer) &x,sizeof(int));
}
void main()
{
int a1=12345;
show_int(a1);
}
输出:
39
30
00
00
c++的源码及输出:
#include <iostream.h>
typedef char* byte_pointer;
//显示各个字节中存储的内容
void show_bytes(byte_pointer start,int len)
{
int i;
for (i=0;i<len;i++)
cout<<start[i]<<endl;
}
//显示int型数据各个字节中的存储情况
void show_int(int x)
{
show_bytes((byte_pointer) &x,sizeof(int));
}
void main()
{
int a1=12345;
show_int(a1);
}
输出:
9
0
请问这是为什么啊?