码迷,mamicode.com
首页 > 其他好文 > 详细

c之指向常字符串的指针做加法

时间:2014-09-15 19:04:19      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   div   问题   sp   代码   log   

先看一小段代码

#include<string.h>
int main()
{
    size_t len = 0;
    const char* id = "abcdefghijklmn";
    len = strlen(id);
    if (len > 3)
    {
        id +=  len - 3 ;
    }
    return 0;
}

乍一看,觉得这段代码一定是有问题,id是一个指向常量字符串的指针,还能做加减?

但是,指针当然能做加减呀。id不是一个常指针,当然能够改变,就算id是一个常指针,也可以改变,但是这里就不讨论这个问题了。

id += len -3; //id向后移动len-3个char类型的长度,即len-3个字节

因此,id = "lmn"

这里id也可以做减法,但是减法会产生内存溢出,慎用。

c之指向常字符串的指针做加法

标签:style   blog   color   ar   div   问题   sp   代码   log   

原文地址:http://www.cnblogs.com/log-a/p/3973314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!