这样定义数组烦什么不行呢?多谢
这样定义数组烦什么不行呢?谢谢!C/C++ codeconst int arrSize1 x + yconst int arrSize2 y + zint a
这样定义数组烦什么不行呢?谢谢!
C/C++ codeconst int arrSize1 = x + y;const int arrSize2 = y + z;int arr1[arrSzie1];int arr2[arrSize2];
代码如上,arrSize1是常量啊,为什么还不行呢?难道非要用指针吗?像这样
C/C++ codeint *parr = new int [arrSize1];
[解决办法]arrSize1是常量啊?
谁说是常量的。X Y确定么?
[解决办法]x和y换个马甲还是一个变量啊
[解决办法]你这个是在运行的时候才能确定具体的值
[解决办法]const定义的只读变量在程序运行过程中只有一份copy,因为他是全局的只读变量,放在静态区。#define 宏实在预编译阶段进行替换,const修饰的只读变量是在编译时确定其值。
[解决办法]new 出来的东西,是在运行时确定大小,因此常量变量无所谓,但数组这个东西,编译器需要在编译时就确定大小,const int a 运行时大小固定,但编译时,编译器不能确定大小。
[解决办法]数组的长度要在编译期确定。不能确定就动态分配或者用容器