【问题标题】:Whats the difference in these pointers?这些指针有什么区别?
【发布时间】:2017-03-15 12:41:57
【问题描述】:

我很难理解这些变化:

char* s = "string";

cout<<*s+1;
cout<<(*s)++;

cout<<*s++;

【问题讨论】:

  • 试过了,说呃,运行它?
  • 我遇到了分段错误。可能是因为您正在修改const char *。第一行应该是:const char * s = "string";,然后你不能做*s++。修改 const 值是未定义的行为:stackoverflow.com/questions/19372952/…

标签: c++ pointers


【解决方案1】:

简单来说,“字符串”位于ROM区,怎么修改呢?

【讨论】:

    【解决方案2】:

    *s+1 语句将字符串第一个元素的 ASCII 值加 1 并打印出来。
    *s 打印字符串的第一个元素。

    【讨论】:

    • ASCII,可能不是。应该说“将代码单元值加 1”。即使我们假设,在实际的字符集编码中,所有的代码点都是一个代码单元,增加一个代码点并不一定会产生一个有效的代码点。例如,Windows-1252 有孔。
    猜你喜欢
    • 2016-06-03
    • 2018-08-25
    • 2016-08-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多