免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2673 | 回复: 3
打印 上一主题 下一主题

const问题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2010-10-09 22:01 |显示全部楼层
第一个const表示返回的指针指向的是块只读内存.
第二个const 修饰的是void *,是无类型的指针,表示指向的整个内存空间都是只读的。
当然这些只读你可以通过别的方法绕过去,但是不建议这么做。

论坛徽章:
0
2 [报告]
发表于 2010-10-09 22:07 |显示全部楼层
那它指向的整个内存空间,怎么定义整个啊
lilikoo 发表于 2010-10-09 22:05

这个是由使用者定义的。
例如你malloc了100字节内存,然后传过去,整个可以理解为100字节。

论坛徽章:
0
3 [报告]
发表于 2010-10-09 22:12 |显示全部楼层
第二个确切的理解是inet_ntop函数体不会对src的实参所指向的数据做任何的修改.
cobras 发表于 2010-10-09 22:10

恩,是这么理解的~对于函数来说,这块内存是只读的,所以它不会修改,算是一种默认规则吧。

论坛徽章:
0
4 [报告]
发表于 2010-10-09 22:20 |显示全部楼层
char *p = (char *)malloc(n);
我把p+1传进函数,那在函数里,是不是p指向char型不是可读,p+1...p+n-1指向 ...
lilikoo 发表于 2010-10-09 22:14

函数声明的那些参数列表中都是形参,不管你传什么进去,只要你是正确传过去的(没有语法错误),它都按形参定义的方式进行处理,而不会理会你的实参原来的样子。
所以在这里,它会认为p+1开始的一段内存是只读的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP