55问答网
所有问题
当前搜索:
定义数组时为什么不能是变量
int i=5;int s[i];这样
定义为什么不
对?
答:
在C语言中,定义数组时,数组的长度只能是常量或常量表达式,不能是变量
。比如:int a[3+2]; //正确 int b[5]; //正确 int n=5;int b[n];//错误,数组的长度是变量
数组
长度
为什么不能是变量
?
答:
数组的大小不能用变量表示的,
是因为在编译连接期间内存要按照你制定的长度给数组分配相应的内存空间
,如果是变量的话就没有办法给它分配了,你可以用符号常量来解决,在开头用:definem100 definen100然后在程序中就可以定义u[m][n]二维数组了,当不一定非要是100,可以是任何一个正整数。C语言里,所...
请问C++的字符串string类
为什么数组
中
不能为变量
?
答:
因为数组在C++中是静态存在的,它占用一定的空间(也就是固定长度)
,在数组当前所在函数运行中是不能改变其长度的(函数结束就消失),一旦改变了长度,数组所在内存区就会出现空缺,导致出错!你在int n=5之前不添加const声明为常变量,系统将认为你“企图”在运行中修改数组长度,所以不予通过。
在C语言中,
数组定义时
的下标
不能
用
变量
表示(即使它已经被赋值),如int...
答:
在编译
的时候
,
数组
需要一个指定的大小。n必须是常数,而你说的赋值在编译的时候编译器并不知道n到底是多少,运行时候才知道,所以编译不通过。若要动态开辟内存,可用malloc,用完之后用free释放即可。
C语言中
数组
长度
不能
用
变量定义
吗?
答:
C语言里,所有变量空间都是在程序运行之初向系统申请的,包括指针,除了一些动态申请方式如malloc函数。没有申请的空间系统是不允许读写的。那么如果一个
数组
大小
是变量定义
,则在程序运行前
不能
确定数组大小,也就
无法
申请,故不允许。所以,解决的办法便是通过malloc函数,即 int a[n];可改为 int* ...
不是
说
数组
的方括号中不可以用
变量
吗,这是怎么回事?
答:
数组定义
时方括号内
不能
使用
变量
,好像是数组在编译时就要分配内存之类的,不确定大小
无法
分配内存;定义完成之后可以使用变量调用数组的值。
C++
为什么数组
成员数
不能
用
变量定义
?
答:
sizeof是在编译时由编译器根据表达式类型计算所占空间,
不是
在运行时。假如int是占4个字节,那么表达式sizeof( int )在编译后被替换为常量4。用
变量定义数组
是C语言的C99支持,但是C++目前的标准也没支持这种语法(C++14我就不知道了),不过GNU C++标准(G++编译器)可以使用变量定义数组。
c语言
数组
元素
能为变量
吗
答:
不能。第一:你所说的变量没有
定义
。第二:
数组
已经定义整型a1这些
变量不是
整型。第三:数组名与第一个元素是地址常量,是不能被改变的。宗上所述,你所说的是不能的。
为什么
c++中声明
数组时
可以用
变量
而c却
不
行?
答:
因为
数组是
确定大小的,在c++和c中都
不能
以
变量
声明,但可以采用以下方式:#define n 5int a[n];此时宏
定义
n为5,在程序编译时就已确定n.
为什么
在c++中
定义数组时
数组的常量表达式
不能
包含
变量
?
答:
你放
变量
在里面,当然编译期间都
不
知道这个
数组
的大小,当然不行了。这类变量一般是在栈上分配空间,只不过不同类型变量位于栈的不同段。有些变量是在运行期间分配空间的,这样的变量里面可以有变量,因为变量的值在运行期间可以确定,系统就知道为它分配多少空间。但一般这类变量是在堆上分配空间。
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
一维数组定义能用变量么
解决数组不能用变量定义大小的问题
数组的大小定义为变量
定义数组下标可以是变量吗
数组用变量定义
定义一个数组变量
定义如下变量和数组
变量名定义数组
数组变量超出定义范围