开发者社区> 问答> 正文

C++ 字符串 长度 指针

int main()
{
char const * pStr="the long string";
char const *p=pStr;
while(*p++);
cout<<(p-pStr)<<endl;
}

请问输出结果为什么是16,而不是15?

展开
收起
a123456678 2016-03-05 10:39:35 2054 0
1 条回答
写回答
取消 提交回答
  • 主要的原因是i++与++i的区别,i++是先做其他后自加,而++i是先自加后再做其他。当十五次,wile判断的是p的最后一个,不为null,所以还在while循环中,但是这p已经指向pStr后地址,这次再来一次while判断,就是空的,但是p指针还会自己一次,所以他的指针就指向pStr后个第二个地址。所以得到的结果是16.

    2019-07-17 18:53:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载