开发者社区> 问答> 正文

c语言指针问题 char *p="abcdefg"+1; 为?报错

char p="abcdefg"+1;
为什么会报错,const char
无法转换为char*

展开
收起
爱吃鱼的程序员 2020-06-24 14:05:33 717 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    abcdefg是const不能直接加一

    我想我知道了,字符串是const的对象所以指向他的指针也必须用const修饰,但这样又有个问题了char*p="ddd";为什么就可以呢?"ddd"不应该是一个const的的对象吗但指针并没有被const修饰啊

    char*p="abcdefg"+1不会报错啊,倒是输出printf("%s",p)的时候,只会输出bcdefg。后面的加1操作相当于把p指针后移一位,你试一下看看

    const是指常量的,怎么能用在指针上???const修饰后不是不能变了吗,指针还有什么用?

    可以这样constchar*p=&i;
    i是什么p就是什么

    2020-06-24 14:05:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载