免费注册 查看新帖 |

Chinaunix

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

大家知道这个是表示什么意思 "s[-1]" [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-23 22:54 |只看该作者 |倒序浏览
我再看strncmp库函数时候看到的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-11-23 22:58 |只看该作者
数组的前一个元素。

论坛徽章:
0
3 [报告]
发表于 2005-11-23 23:14 |只看该作者
原帖由 lenovo 于 2005-11-23 22:58 发表
数组的前一个元素。



请明示,还不是很明白。数组的前一个元素,指的那个呢。是他的首地址,还是当前地址或者是别的

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-11-23 23:19 |只看该作者
首地址的前一个。

论坛徽章:
0
5 [报告]
发表于 2005-11-23 23:33 |只看该作者
那怎么去比较二个字符串的大小,首地址的前一个值从那里来,如果内存没有用到。那出现什么结果呢?

论坛徽章:
0
6 [报告]
发表于 2005-11-23 23:34 |只看该作者
如果 s 是一个指针,那么 s[-1]  就是 *(s - 1),其意义表示 s 指针指向位置的前一个元素。s 应该指向一个数组中的某一元素。

在此,s 不应是数组名,因为如果是数组的话其合法的下标只能为非负数。

论坛徽章:
0
7 [报告]
发表于 2005-11-23 23:43 |只看该作者
多谢!应该是这个意思

但是我vc下面,用负数下标可以编译过(也没有告警),但是得到得值是乱码,不知别得编译器会有什么提示

论坛徽章:
0
8 [报告]
发表于 2005-11-23 23:43 |只看该作者
[ ] 又叫下标运算符, s[-1]等价于*(s - 1)

论坛徽章:
0
9 [报告]
发表于 2005-11-23 23:56 |只看该作者
原帖由 paul-luo 于 2005-11-23 23:43 发表
多谢!应该是这个意思

但是我vc下面,用负数下标可以编译过(也没有告警),但是得到得值是乱码,不知别得编译器会有什么提示


在C以及C++中对于数组越界不做检查。因此,不对数组作越界访问是由程序员自己来保证的,而不是依靠编译器。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-11-24 00:11 |只看该作者
能把源码发上来吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP