麦克雷 Mavom.cn
标题:
number不是常数吗 为何错误
[打印本页]
作者:
c20415646
时间:
2022-12-22 19:45
标题:
number不是常数吗 为何错误
(, 下载次数: 0)
上传
点击文件名下载附件
(, 下载次数: 0)
上传
点击文件名下载附件
作者:
umurar
时间:
2022-12-22 19:45
(, 下载次数: 0)
上传
点击文件名下载附件
作者:
waaygacm97
时间:
2022-12-22 19:46
因为const int只在C++中才被视为常量,且VS不支持VLA
作者:
艾的民
时间:
2022-12-22 19:46
VS不让定义变长数组,因为用的编译器不是GCC的
但是可以这样实现同样的功能,比如:
#include<stdio.h>
int main(){
int n=0;
scanf("%d",&n);
int* num = new int[n];//分配动态存储空间
for(int i=0;i<n;i++){
scanf("%d",&num
);
}
for(int i=0;i<n;i++){
printf("%d ",num
);
}
delete num;//记得删掉
return 0;
}
作者:
艾的民
时间:
2022-12-22 19:47
大佬免费解答问题
(, 下载次数: 0)
上传
点击文件名下载附件
作者:
shiyuanz
时间:
2022-12-22 19:47
没错,只是vs不能支持完整的c语言标准
作者:
aixxxbb
时间:
2022-12-22 19:48
可以定义一个名字为prime的指针,然后用malloc
作者:
jason_og9F5
时间:
2022-12-22 19:49
老生常谈的问题,常量是define的。
int是变量,所以吧int换成define就好了。
作者:
als6k4d9i
时间:
2022-12-22 19:50
gcc也不可以吧
作者:
shentengfei
时间:
2022-12-22 19:50
const其实是不可改变的意思,不能说是标准的常量
作者:
bws
时间:
2022-12-22 19:51
const换成constexpr试试,const只是表示只读,常量的意义有constexpr表示
作者:
nknusqhkfgkx
时间:
2022-12-22 19:51
constexpr才是常量
作者:
艾的民
时间:
2022-12-22 19:52
变长数组,有的编译器不支持。最好别这么弄
作者:
契约者
时间:
2022-12-22 19:52
首先,const变量也是变量。用变量作为长度的数组在C23标准之前绝对禁止初始化,从C23开始只允许全零初始化,即以下形式:
int n = 10, a[n] = {};
其次,您可能是MSVC的受害者。VS默认使用的MSVC是C++编译器,并不能完全支持C的编译。如果要使用VS编译C程序,在项目属性中把平台工具集换成LLVM
(, 下载次数: 0)
上传
点击文件名下载附件
作者:
艾的民
时间:
2022-12-22 19:53
不支持变长数组,用gcc编译就可以。
而且你还有一个问题,变长数组不能初始化,因为变长数组需要等变量值确定以后,才在程序中创建。
你以为可能是变量的数值替换括号里的文本,实际上不是这样,实际上是在程序执行中才创建的数组,所以不能在定义时初始化。
而且这玩意本质上也是静态数组,很不好用,还是malloc好使,学学用这个。
欢迎光临 麦克雷 Mavom.cn (http://www.mavom.cn/)
Powered by Discuz! X3.5