zoukankan      html  css  js  c++  java
  • 使用p[i]或者*(p+i)修改字符串中的单个字符

    字符串果然是博大精深,初始化字符串有三种方式:

    char *p1[] = "Hello";
    char *p2 = "World";
    char *p3 = (char *)malloc(3);

    这三种方式产生的指针p1、p2、p3本身都位于栈中,这就不多说了,关键是右值的数据是位于哪,其位置直接决定了哪些字符串是可修改单个字符的。

    第一种方式中,“Hello”位于栈中,所以可以采用p1[i]或者*(p1+i)来进行单个字符的修改,比如可以p1[4]='s',将"Hello"编程“Hells”。

    第二种方式中,“World”位于静态数据区,位于该区的数据是常量不能被修改,所以不论是采用p2[i]还是*(p2+i)都无法单个修改字符串中的字符。

    第二种方式中,malloc分配的空间位于“堆”中,可以采用p3[i]或者*(p3+i)的方式进行修改。

  • 相关阅读:
    10.28作业
    10.27作业
    10.26作业
    10.22作业
    10.20作业
    10.19作业
    10.16作业
    10.15作业
    10.14作业
    10.13作业
  • 原文地址:https://www.cnblogs.com/wuqi1003/p/3374656.html
Copyright © 2011-2022 走看看