在C语言中将"Hello"赋值给chr的数组

edi*_*edi 0 c arrays

在C中,这是合法的,并将编译:

char names[5] = "Hello";
Run Code Online (Sandbox Code Playgroud)

但这个不是:

char names[5];

names = "Hello";
Run Code Online (Sandbox Code Playgroud)

如何将赋值放在字符数组"Hello"中?我可以不这样做strcpy吗?

cni*_*tar 5

你不能.在C中,数组不是左值,因此您无法分配它.

唯一的方法:

  • 使用复制功能(例如memcpy或类似strcpy)
  • 一次分配一个元素(eew)
  • 使用指针而不是数组.有一些民间知识,"数组只是一个指针". 不是 真的(是的,那些是3个链接).