问个memcmp使用的问题

blueboy82006 2012-04-27 11:13:57
#include <iostream>
#include <string.h>

using namespace std;


int main()
{
int a=1;
int b=256;
if(memcmp(&a,&b,sizeof(int))<0)
cout<<"1<256"<<endl;
else
cout<<"1>256"<<endl;


return 0;
}

为什么输出 1>256,好像只比较了一个字节。
一直没搞清楚。
求教一下上述memcmp使用有什么问题?
多谢~
...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaychenxiuliang 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
memcmp比较的是内存地址而不是值
即&a &b的地址
[/Quote]

不知道我理解对不对, 你这话明显有问题, 比较内存地址有意义吗?还不是比值 ??
wfq0987 2012-04-27
  • 打赏
  • 举报
回复
  int a=1;
int b=256;
if(a<b)
cout<<"1<256"<<endl;
else
cout<<"1>256"<<endl;



Compare characters in two buffers.
int memcmp(
const void *buf1,
const void *buf2,
size_t count
);
blueboy82006 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

a=1;在内存是这样存储的:01 00 00 00;

b=256;是这样的:00 01 00 00;

以上四个字节存储,该函数是按字节比较的,第一个字节,大小就已经确定,就不会往后比较,所以是大于0
[/Quote]

多谢,都忘记还有这么一回事了。
bsnry 2012-04-27
  • 打赏
  • 举报
回复
memcmp 内存比较函数,有什么用啊
evencoming 2012-04-27
  • 打赏
  • 举报
回复
memcmp是 按照字节,从低字节到高字节的比较.
Red_angelX 2012-04-27
  • 打赏
  • 举报
回复
不好意思 是我理解错了 ls正解 我也学习了
七擒关羽 2012-04-27
  • 打赏
  • 举报
回复
可以结贴了 1Z已经说明了问题
Red_angelX 2012-04-27
  • 打赏
  • 举报
回复
memcmp比较的是内存地址而不是值
即&a &b的地址
autumn1202 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
a=1;在内存是这样存储的:01 00 00 00;

b=256;是这样的:00 01 00 00;

以上四个字节存储,该函数是按字节比较的,第一个字节,大小就已经确定,就不会往后比较,所以是大于0
[/Quote]

++
lz的机子应该是小端模式,大端模式就会相反了
hen_hao_ji 2012-04-27
  • 打赏
  • 举报
回复
a=1;在内存是这样存储的:01 00 00 00;

b=256;是这样的:00 01 00 00;

以上四个字节存储,该函数是按字节比较的,第一个字节,大小就已经确定,就不会往后比较,所以是大于0

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧