gpt4 book ai didi

c - 以下代码中的表达式语法错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:20 24 4
gpt4 key购买 nike

char name[25]; 
name[] = "abcd";

上面的代码给我表达式语法错误。

char name[25]; 
name = "abcd";

上面的代码给我一个需要左值的错误。

但是下面的代码没有报错:

char name[25] = "abcd";

谁能解释一下?

最佳答案

char name[25] (数组的声明)这样做:

  • 预留25字节内存
  • 声明name作为指向该内存的字符数组(几乎但不完全像 char * )。

char name[25] = "abcd" (带有初始化程序的数组声明)这样做:

  • 预留25字节内存,用"abcd\0"填充
  • 声明name作为指向该内存的字符数组(几乎但不完全像 char * )。

(name[] = "abcd" 的大小写不是 C 支持的语法。)

在这两种情况下,指针和数组之间的关键区别之一是指针的目标可以改变;数组的目标不能。 IE。你永远不能给 name 分配任何东西声明为 char[]以上,但您可以分配给 name声明为 char * , 如下。 char *name; name = "abcd" (指针的声明,将文字字符数组分配给指针)这样做:

  • 预留5个字节的内存,由"abcd\0"填充
  • 声明name作为指向未定义目标的字符指针(几乎但不完全像 char[] )
  • 分配"abcd\0"占用内存的地址到变量 name .

关于c - 以下代码中的表达式语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57969054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com