定义数组时可以java数组不定义长度数组的长度吗

共有 14806 人关注过本帖
标题:怎么定义一个,让用户输入大小的数组?(详细点说明)
等 级:新手上路
&&已结贴√
&&问题点数:20&&回复次数:10&&&
怎么定义一个,让用户输入大小的数组?(详细点说明)
搜索更多相关主题的帖子:
等 级:论坛游民
帖 子:19
专家分:28
举个例子:
&&&int a[],i;
&&& for(i=0i&n;i++)
&&& scanf(&%d&,&a[i]);
&&& printf(&%d &,a[i]);
等 级:论坛游民
帖 子:18
专家分:41
程序代码:#include &stdio.h&
#include &malloc.h&
int main()
&&& printf(&输入数组大小:\n&);
&&& scanf(&%d&,&size);
&&& char * array = (char*)malloc(size * sizeof(int));
&&& for(i=<font color=#;i&i++)
&&&&&&&&printf(&请输入数组元素!\n&);
&&&&&&&&scanf(&%d&,&array[i]);
&&&&&&&&printf(&array[%d]=%d\n&,i,array[i]);
&&& free(array);
&&& return <font color=#;
}记得释放就行
等 级:论坛游民
帖 子:18
专家分:41
当大小不知道时,要动态分配内存,最后记得释放
等 级:论坛游民
专家分:15
一般数组的定义是不能用变量来作为维数的,
如:int a[n]是不行的;
数组的维数要用常量表达式定义,此常量表达式之恩那个包含整型字面值常量和枚举常量或用常量表达式初始化的const对象,非const变量以及要运行阶段才知道其值得const变量都不能用于定义数组的维数。
要满足你所说的用户输入数组大小的要求,就要用动态数组。
用整型变量来举个例子如下:
C++中用下面定义:
std::cin &&
int *a = new int[n];
C语言中可以用malloc:
scanf(&%d&, &n);
int *a = (int*)malloc(n * sizeof(int));
要追加一点说明就是动态数组是存储在堆上的,用完了一定要释放内存,否则会造成内存泄露。
释放内存的时候,malloc申请的内存free来释放,new申请的内存用delete释放。
来 自:西安
等 级:新手上路
举个单纯用C语言基础知识说明的例子
void maim ()
&&int a[100],i,n;
&&scanf(&%d&,&n);
&&for(i=0;i&=n;i++)
&&scanf(&%d&,&a[i]);
&&printf(&%d\n&,a[i]);
注意n&=100
等 级:版主
威 望:178
帖 子:3294
专家分:21129
有的编译器是支持用变量来定义数组的大小的.
否则,可以采用动态内存分配的方法来实现之.
★★★★★为人民服务★★★★★
等 级:小飞侠
帖 子:920
专家分:2514
回复 7楼 cnfarer
有编译器支持变量定义的数组吗?比如?
冰冻三尺,非一日之寒;士别三日,不足刮目相看!
等 级:蜘蛛侠
帖 子:229
专家分:1027
等 级:版主
威 望:178
帖 子:3294
专家分:21129
回复 8楼 waterstar
minGW (GCC)
当然你在数组定义后,不能企图通过改变变量的值而改变数组的大小
[ 本帖最后由 cnfarer 于
19:20 编辑 ]
★★★★★为人民服务★★★★★
版权所有,并保留所有权利。
Powered by , Processed in 0.022103 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reservedjavascript 数组的定义和数组的长度
投稿:yourber
字体:[ ] 类型:转载 时间:
本文主要介绍javascript 数组的定义和数组的长度,比较简单,希望能给大家做一个参考。
本文提供一款简单的js入门教程,这是一款js数组定义与数组长度实例教程,如果你正在学习js数组的话,我们这里告诉你如何定义数组以及增加数组与数组长度计算实例。
先来看看如何定义数组
代码如下:var a = new array();
var b = new array(8);
var c = new array("first", "second", "third");
或者数组直接量:
代码如下:var d = ["first", "second", "third"];
下面看一下,在数组后面增加一个元素
代码如下:var myarray = [];
myarray[myarray.length] = 'new element';
数组的长度
array只有一个属性,就是length,length表示的是数组所占内存空间的数目,而不仅仅是数组中元素的个数,在刚才定义的数组中,b.length的值为8
代码如下:&script&
var a = new array("first", "second", "third")
a[48] = "12"
document.write(a.length)
//显示的结果是49
下面来看看修改数组长度实例
代码如下:var myarray = [1,2,3];
myarray.length // 初始的长度是3
myarray.length = 2; // 删除最后一个元素
myarray.length = 20 // 添加18个元素到数组中
查看更多JavaScript的语法,大家可以关注:《》、《》,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查看: 2091|回复: 5
数组定义长度问题
招聘 : 论坛徽章:113
一个项目改造,由于目前存储过程中有很多返回数据组操作,
原来是用open 游标的方式进行的,基于一些原因,想把这块进行改掉,因此,我弄一个方案,大概如下
先定义一通用的二维数组,然后进行数组返回,&&这样,改动量小,省时省力。。
代码大概如下:
CREATE OR REPLACE TYPE tp_record IS TABLE OF VARCHAR2(1000) ;CREATE OR REPLACE TYPE tp_table IS TABLE OF tp_CREATE OR REPLACE PROCEDURE p_test_001(lt_table1 OUT tp_table,& && && && && && && && && && && && && &lt_table2 OUT tp_table)
AS BEGIN----以下这样的语句可能相当多,一个存储过程可能返回N个&&SELECT&&tp_record (command_id, xmlcode_id, sports_id, pool_id, xml_name, force_flag) BULK COLLECT&&--一次性数据装载于数组& & INTO lt_table1& & FROM xxxx& &WHERE msg_code = 200& &ORDER BY order_no, sports_id ASC, pool_id ASC; END;--------------------------------本感觉这个还不错,但现在问题是:
CREATE OR REPLACE TYPE tp_record IS TABLE OF VARCHAR2(1000)
这个1000,是有可能返回的一些有超长的字符,所以定义最大,
意思是说会浪费内存,返回数据oracle会按定义长度开辟内存,那这就不太好了,
当然我可以根据不同的select定义不同的数据类型,但那样太麻烦,
这个有没有什么方法变通,或者是我理解有误,各位帮分析下。。。;.
招聘 : 论坛徽章:113
奇怪问题,或许是我不清楚,&&
select T.VALUE from v$pgastat T
WHERE T.NAME='total freeable PGA memory'& & 这个应该是查pga空闲的内存吧,
把上面的数组产生一个与其它表关联然后产生 38024行,定义的是 VARCHAR2(1000),
在java中我打印出
sqa free memory=
simpleArray=38024
0sqa free memory==========
第一行是直接查上面那个sql,第二行是运行存储过程后得到有这么多行的数组,然后再执行上面那个sql,
结果,第二次执行后的数字还比第一次大, 按我理解执行存储过程返回数组后应该PGA用的多,空间的就会少, 先不管这个了
然后,我继续测试,变为varchar2(20),
sqa free memory=
simpleArray=38024
0sqa free memory==========
有没有发现 38272&&, 13984& &都为786432
按理解我把varchar2定义变小,应该差值会缩小,但还是一样, 是不是可以说明,
CREATE OR REPLACE TYPE tp_record IS TABLE OF VARCHAR2(1000) ;
CREATE OR REPLACE TYPE tp_record IS TABLE OF VARCHAR2(20) ;
都没有关系,产生的内存空间都只与数据有关, 那这是我要的结果了
招聘 : 论坛徽章:113
哈,用这个查再测试了
select sum(pga_used_mem)&&
当我用VARCHAR2(1000) ;VARCHAR2(10) ;
前后差基本都是 217880,
那应该可以说明这个跟长度定义无关吧
论坛徽章:428
数组的消费者是PLSQL程序?如果是其他语言还得到那种语言里去测试。
把数据拆成这样零碎,使用起来也很困难,我想象不出是什么样的应用?
招聘 : 论坛徽章:113
这种场景应该还是有那么多,比如一个web页面的数据,有很多块,都是通过临时计算得到的数据,但又不可能做到预先计算好,所以就会有这样的要求得到多个数据块
招聘 : 论坛徽章:113
刚用Java直接调返回数组的存储过程和返回游标的存储过程,后对返回内容进行转化,,发现游标的方式还更快,原想是数组应该会更快,
看样子,没有改的必要了
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号菜鸡求教。怎么定义长度不确定的一维数组呢?_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:493,475贴子:
菜鸡求教。怎么定义长度不确定的一维数组呢?收藏
比如输出三位数的所有水仙花数。我想用for(i=0;i&=999;i++)if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)然后把这个水仙花数存到一个数组里,最后输出数组。但是课本上说不能用变量定义数组- -我又不清楚他到底有几个水仙花数- -这时候该怎么办呢
票牛教你如何买到热门、便宜、真实的演出门票!
〔〕里可以不写长度吧
我记得书上说,不在〔〕里定义长度,系统就会按照数组元素分配对应的内存空间。。。
你可以尽量写大点吗,若硬是想用动态数组,那就用malloc函数,不过涉及到了后面的知识
请楼主参阅 C Primer Plus 第五版第十章的变长数组一节,这个比 malloc 方便多了。
VLA or malloc() & free() ...。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2012年1月 扩充话题大版内专家分月排行榜第二
2010年4月 Delphi大版内专家分月排行榜第二2010年3月 C++ Builder大版内专家分月排行榜第二2009年9月 C++ Builder大版内专家分月排行榜第二2005年10月 Java大版内专家分月排行榜第二2006年11月 C++ Builder大版内专家分月排行榜第二2006年10月 C++ Builder大版内专家分月排行榜第二2006年9月 C++ Builder大版内专家分月排行榜第二2006年7月 C++ Builder大版内专家分月排行榜第二2004年1月 C++ Builder大版内专家分月排行榜第二2006年1月 Delphi大版内专家分月排行榜第二
2010年5月 C++ Builder大版内专家分月排行榜第三2006年8月 C++ Builder大版内专家分月排行榜第三2004年2月 C++ Builder大版内专家分月排行榜第三2003年8月 C++ Builder大版内专家分月排行榜第三2006年4月 Delphi大版内专家分月排行榜第三2005年12月 Delphi大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 java定义数组长度 的文章

 

随机推荐