先看一小段代码
#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也可以做减法,但是减法会产生内存溢出,慎用。