社区
C语言
帖子详情
请教C语言中 (char *)-1)什么意思啊
li32768
2009-04-02 03:56:07
在 C 语言编程中,遇到这种情况,请问这个是什么意思啊,
为什么 mem==(char *)-1) 而后面的字符指针又没有变量名,
我在网上搜索发现不能输入运算符,没有找到的,先谢谢了
...全文
1876
10
打赏
收藏
请教C语言中 (char *)-1)什么意思啊
在 C 语言编程中,遇到这种情况,请问这个是什么意思啊, 为什么 mem==(char *)-1) 而后面的字符指针又没有变量名, 我在网上搜索发现不能输入运算符,没有找到的,先谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fianceeyi
2009-04-02
打赏
举报
回复
自学是王道。。。
li32768
2009-04-02
打赏
举报
回复
我自己来回答了
这是一种对常量内存地址表示方法,应用程序有时有这样的需求。这种写法的格式是: (地址类型)地址常量;
//其中常量地址可以用10进制或16进制书写
给举几个例子,比如在在32位系统中:
char* pCh = (char*)-1; // 则pCh为指向char类型的指针,其值为0xffffffff
int* pInt = (int*)2; // 则pInt为指向int类型的指针,其值为0x00000002
float* pFloat = (float*)0x00001a3e; 则pFloat为float类型指针,其指向的地址为0x00001a3e
对于标题中的代码,是这样解释的:
if(mapped_mem == (char *)-1)
{
// 如果映射内存地址(即mapped_mem)为0xffffffff 进行处理
}
else{
// 进行其他处理 }
我想我应该讲清楚了
Paradin
2009-04-02
打赏
举报
回复
[Quote=引用 6 楼 chenzongquan1973 的回复:]
一般用把-1转换成某种指针来表示错误的指针。if(mem==(char*)-1)一般同检查上一个语句中得到的mem指针是否出错了。
[/Quote]
d
li32768
2009-04-02
打赏
举报
回复
我来回答了:
<P>我自己来回答了:</P>
<P>这是一种对常量内存地址表示方法,应用程序有时有这样的需求。 <BR><BR>这种写法的格式是: (地址类型)地址常量;//其中常量地址可以用10进制或16进制书写 <BR><BR>给你举几个例子,比如在在32位系统中: <BR>char* pCh = (char*)-1; // 则pCh为指向char类型的指针,其值为0xffffffff <BR>int* pInt = (int*)2; // 则pInt为指向int类型的指针,其值为0x00000002 <BR>float* pFloat = (float*)0x00001a3e; // 则pFloat为float类型指针,其指向的地址为0x00001a3e <BR><BR>对于你的标题中的代码,是这样解释的: <BR>if(mapped_mem == (char *)-1){ // 如果映射内存地址(即mapped_mem)为0xffffffff <BR>// 进行处理 <BR><BR>}else{ <BR>// 进行其他处理 <BR><BR>} <BR><BR>我想我应该讲清楚了。</CA> </P>
Cpp权哥
2009-04-02
打赏
举报
回复
一般用把-1转换成某种指针来表示错误的指针。if(mem==(char*)-1)一般同检查上一个语句中得到的mem指针是否出错了。
armed
2009-04-02
打赏
举报
回复
使用(-1)作为指针的好处是:
读写空指针(也就是0地址)“有时”不会引起异常,而在(-1)地址执行读写肯定异常,100%有效。
breezes2008
2009-04-02
打赏
举报
回复
-1的16位二进制表示:1111 1111 1111 1111
此时mem指向0xFFFF这个地址。
影子LEON
2009-04-02
打赏
举报
回复
把-1这个值强制转换成地址。。。
猫已经找不回了
2009-04-02
打赏
举报
回复
mem==(char *)-1) 而后面的字符指针又没有变量名
指针-1吧
yyyapple
2009-04-02
打赏
举报
回复
可能表示 mem = 0xFFFFFFFF
C语言
程序+黄迪明.pdf
C语言
程序+黄迪明.pdf,方便0基础的学生自学。
非C程序员C++入门自学
C++入门,非常基础的,最开始学来用的。一步一步教你如何编程。~~~~~~~~~~~~~~~~~~~
C语言
同步训练全文/题库
C语言
程序设计,
C语言
程序设计指导,练习题
国二
C语言
各年代试题
各个年代都有 好长时间没看了 有喜欢的可以下载看看
二级
C语言
考试教程 二级
C语言
考试教程
里面含有二级C复习的相关方法,描述了二级C
中
常考的内容,不错的东西,给大家分享!里面含有二级C复习的相关方法,描述了二级C
中
常考的内容,不错的东西,给大家分享!
C语言
70,014
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章