首页 > 试题广场 >

在以下代码段下划线处填写以下哪个选项可以输出good。 ()

[单选题]
在以下代码段下划线处填写以下哪个选项可以输出good ()
    char a[] = "ggood";
    char b[];
    _________
    printf(b);

  • b = a+1;
  • b = &a[1];
  • char c="good"; b = c;
  • 编译出错或其他都不对
字符数组如果没有初始化,就必须指定大小,比如char c[10];如果进行了初始化,无须指定大小,比如char c[]="abcd";编译器会自动判断大小。字符数组名+1是char*类型,其实就是一个指针。本题把char b[]修改为char *b,则答案A,B,C均正确
编辑于 2022-02-14 18:37:09 回复(4)
选择D
因为定义数组时没有初始值、也没数组长度,此时编译会出错
发表于 2022-07-16 13:57:10 回复(0)
我只想说printf语句也不能打印吧,另外,选项中的a,b都是数组名为地址常亮,不能给常量赋值吧
编辑于 2023-08-31 01:19:20 回复(0)
a+1==&a[1] 都是第二个g的地址。c后面应该加[]
发表于 2022-10-22 08:34:20 回复(0)
指向数组的指针定义后可以看成常量,不能赋值。
发表于 2022-03-14 13:25:02 回复(0)
因为定义数组时没有初始值、也没数组长度,此时编译会出错,所以选D
发表于 2023-07-04 20:25:55 回复(0)
字符数组如果没有初始化,就必须指定大小,否则编译无法通过。
发表于 2022-07-19 19:07:31 回复(0)