很简单的 数据溢出问题。

tbg1986tbg tbg1986tbg 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
随便写了个 如下一个很简单的例子。

#include "stdio.h"

int t(int a, unsigned int b)
{
return a/b;
}

int main()
{
printf("%d\n",t(-50,2));
return 0;
}


//输出结果是:2147483623。

原因是unsigned 十无符号的整形不能表示-50/2。所以取低32位的结果就是2147483623


我的问题是:printf("%x\n",t(-50,2));//这个不是以16进制输出来结果值吗,结果十7FFFFFE7

printf("%p\n",t(-50,2));//这个不是结果值的地址吗,结果为什么也是7FFFFFE7?

我哪里理解错了》结果值等于地址值?

一时反映不上来。各位帮忙理下思路。。。。。
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
tbg1986tbg
VC/MFC 16,551 成员 421,605 内容