免费注册 查看新帖 |

Chinaunix

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

const char *, [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-16 13:35 |只看该作者 |倒序浏览
例如下面的函数申明:char *strncpy(char *, const char *, size_t),
为什么const char *不可以是char *?这样做有什么好处吗?
请各位大哥大姐解释一下

论坛徽章:
0
2 [报告]
发表于 2005-12-16 13:42 |只看该作者
防止strncpy函数修改源串

论坛徽章:
0
3 [报告]
发表于 2005-12-16 13:46 |只看该作者
楼上的正解,请看<C专家编程>

论坛徽章:
0
4 [报告]
发表于 2005-12-16 13:55 |只看该作者
用void * 表示什么意思?
在哪能看到<C专家编程> ?

论坛徽章:
0
5 [报告]
发表于 2005-12-16 15:35 |只看该作者
void * 可以指向不同类型的指针,你可以用强制类型转换成你需要的类型

论坛徽章:
0
6 [报告]
发表于 2005-12-16 15:47 |只看该作者
我有个问题,为何strncpy会改变第二个参数内的内容呢?

论坛徽章:
0
7 [报告]
发表于 2005-12-16 16:07 |只看该作者
不可能吧,是第一个参数的。

论坛徽章:
0
8 [报告]
发表于 2005-12-16 16:15 |只看该作者
嗯,可能是楼主笔误。
但是先不管第一个第二个。
我的疑问是,字符串复制函数为何要认为它会修改复制源呢?难道写函数的人是傻瓜,他不知道不能修改复制源?为何非一定要在输入参数上作const限制呢?

论坛徽章:
0
9 [报告]
发表于 2005-12-16 17:41 |只看该作者

回复 8楼 Sworder 的帖子

修改可以是故意(有意)的,也可能是无意的
加了限制,就避免了隐藏的问题。
就好比,为什么阳台上要做护栏呢?
难道人们不知道掉下去会死吗?当然,存心自杀的不算
扬子江 该用户已被删除
10 [报告]
发表于 2005-12-16 17:46 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP