C++ char*不能用作指针

Sma*_*vić -2 c++ pointers char

我有以下代码的问题.

int main(){
   char* cptr = new char[100];
   *cptr[1] = 'A';
 }
Run Code Online (Sandbox Code Playgroud)

当我在Visual C++ 2010中编译它时,它给出了错误:"*'的操作数必须是指针".但是cptr是指针.

Luc*_*ore 6

是的,但cptr[1]不是 - 这是一个char.这就是你所申请*的.

*cptr[1] == 
*  (cptr[1]) 
      | 
 this is a char
Run Code Online (Sandbox Code Playgroud)

你可以写

char cptr[] = "A";
Run Code Online (Sandbox Code Playgroud)

或使用std::string.