求助题
这个怎么做 本帖最后由 dolly_yos2 于 2022-9-24 09:49 编辑如果这个题库(答案)可靠的话,那就没法做,只能背答案。
看样子似乎 C 和 D 应该合并为一个选项,否则 D 显然有一个未定义的符号 S ,而 C 完全不是数组说明。如果合并为一个选项,那么 S 会在编译之前被替换为 10 ,这句话等价于 int a; ,显然没有问题。
A 是 VLA ,同样没有问题,但答案给出的是这个,那如果目的是刷题考试的话唯一的办法就是背下来。 你这个试卷用的可能是ANSI C,也就是C89标准
在C89标准中,这样写是不允许的,在C99标准后才能这样写
int n = 2;
int a; dolly_yos2 发表于 2022-9-24 09:45
如果这个题库(答案)可靠的话,那就没法做,只能背答案。
看样子似乎 C 和 D 应该合并为一个选项,否则 D ...
可能试卷用的C语言标准是ANSI C,在ANSI C中,不能这样写 在ANSI C中如果要实现A选项的功能就必须这样写
#include <stdio.h>
#include <stdlib.h>
int main()
{
int N;
int *a = NULL;
scanf("%d",&N);
a = (int*)malloc(sizeof(int)*N);
free(a);
} https://www.icourse163.org/learn/ZJU-200001?tid=1467811465#/learn/content?type=detail&id=1249287752&cid=1276744480 在 C 和 C++ 中,变量不能用于定义数组大小 阿巴阿巴,我是C++11
但是我还是懂点,如果数组指定长度包含变量(不包含常量,宏变量),那就报错,但是表达式不会
试卷好像有问题,C应该和D连在一起的
页:
[1]