【问题标题】:How to reassign value of element of char array in C如何在C中重新分配char数组元素的值
【发布时间】:2014-02-26 15:17:44
【问题描述】:

我想将apple中第三个字母的值改为“a”。 以这种方式使用间接会给我一个编译器错误说: 一元'*'的无效类型参数(有'int')

#include<stdio.h>
int main(){
char c[6]="apple";
*c[2]="a";
return 0;
}

【问题讨论】:

  • c[2]='a';c[2]=*"a";
  • @BLUEPIXY:虽然在技术上是有效的,但我认为大多数程序员认为*"a" 是丑陋的语法。
  • @abelenky 我完全同意。

标签: c pointers gcc


【解决方案1】:

您应该使用以下内容:

c[2]='a';

在 C 和 C++ 中,"x"const char [2] 的一种类型。要指定一个字符,您需要使用'x',它是const char 的一种类型。

【讨论】:

    【解决方案2】:

    双引号创建以空字符结尾的字符串。

    相反,您需要一个单引号字符,它只是一个 char 值:

    c[2]='a';  // Now your string is "apale"
    

    【讨论】:

      【解决方案3】:

      不如试试

       *(c+2)='a'
      

      您应该了解更多关于指针如何在 c 中工作的信息。

      【讨论】:

        【解决方案4】:

        你可以使用

        c[2]='a'

        *(c+2)='a'

        其中任何一个都可以工作..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-13
          • 2016-06-27
          • 2021-12-25
          • 2018-10-27
          • 2020-08-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多