前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[2013.9.15]关于string::nops为什么是-1

[2013.9.15]关于string::nops为什么是-1

作者头像
ApacheCN_飞龙
发布2019-02-15 11:21:08
6170
发布2019-02-15 11:21:08
举报
文章被收录于专栏:信数据得永生信数据得永生

const size_t string::nops = -1;

大家可能看到这条定义有些疑惑 为什么找不到字符串要返回-1呢 size_t是unsigned int类型 -1是int类型 那么同等大小的有符号和无符号转化的时候 仅仅更改数据解释方法 数据本身是不会 变的

由于计算机表示负数是按照补码来的 -1用无符号数的规则解释就成了UINT_MAX

一个字符串的长度 不可能超过所能表示它长度的数据类型的上限 对于size_t的类型来说 最大的数是UINT_MAX 那么最大可能的下标就是(UINT_MAX – 1) 那么任意找一个字符串的位置 自然也就不可能是UINT_MAX了

所以UINT_MAX就表示未找到 -1只是写起来方便 不然要写成0xFFFFFFFF

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年05月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档