首页 > 试题广场 >

执行以下代码段(程序已包含所有必需的头文件)会输出什么结果。

[单选题]
执行以下代码段(程序已包含所有必需的头文件)会输出什么结果()
    char a[3];
    char b[] = "good";
    a = b;
    printf("%s", a);

  • go
  • goo
  • good
  • 编译出错
a是地址,不能直接赋值。如果想要赋值,可以把第三行代码改成*a=*b;此时第四行输出一个字母g
发表于 2022-01-21 15:26:36 回复(4)
a是数组名,他是一个指针常量,所以无法被赋值。指针变量才可以这样赋值
发表于 2022-05-09 00:03:37 回复(1)
a是一个地址,不是值。
发表于 2021-12-12 15:34:08 回复(0)
数组的名称代表地址,应该看成固定的常量,不可以被修改,否则会出错
发表于 2022-06-09 22:07:17 回复(0)

在C语言中,数组名不能作为左值进行赋值操作。在代码段中,将b的地址赋值给a是不合法的操作,会导致编译错误。正确的做法是使用strcpy函数将b的内容复制给a:

cCopy Code
char a[5]; char b[] = "good"; strcpy(a, b); printf("%s", a);

这样才能正确输出"good"。

发表于 2023-10-17 14:27:41 回复(0)
地址定义后不能赋值
发表于 2022-03-14 11:00:42 回复(0)
a是地址不能赋值
发表于 2022-03-12 12:41:26 回复(0)
地址不能直接赋值
发表于 2023-01-11 11:46:11 回复(0)
地址不能赋值
发表于 2022-10-24 01:19:17 回复(0)
数组名代表数组首地址 是一个指针常量无法对其进行赋值
发表于 2022-10-13 10:48:29 回复(0)
a不是左值,不经进行赋值操作
发表于 2022-09-29 17:59:30 回复(0)
register 提高运行速度
发表于 2022-08-31 06:15:27 回复(0)
a,b是数组。c语言中:a代表的是数组a的地址,b同理。
发表于 2022-03-30 11:26:56 回复(0)
a是数组名,指针常量无法赋值
发表于 2023-06-30 20:12:13 回复(0)
地址不能直接赋值
发表于 2022-09-30 07:06:18 回复(0)
地址不能赋值
发表于 2022-03-16 00:09:35 回复(0)