一java程序疑问

[复制链接]
查看11 | 回复5 | 2009-3-12 11:50:10 | 显示全部楼层 |阅读模式
public class lesson1
{

public static void main(String[] args)

{

for(int i=0;i<args.length;i++)//没有被初始化怎么就可以计算出数组的长度?

System.out.println(args);



}
}
编译通过,执行java lesson1 first second输出first second。
我的疑问是定义的字符串数组args没有被初始化,就编译通过了,怎么还能计算数组的长度呢?

回复

使用道具 举报

千问 | 2009-3-12 11:50:10 | 显示全部楼层
把main方法换成一个普通的方法理解一下。public void test(String[] args){//这样很正常吧!args是一个传入String数组的参数for(int i=0; i<args.length; i++){System.out.println(args);}} 只不过main方法有点特殊,它是程序运行的入口,所以它的参数传入的方法和普通方法有点不一样。...
回复

使用道具 举报

千问 | 2009-3-12 11:50:10 | 显示全部楼层
这是由于args【】是字符串数组,在你main()函数中已经定义了,系统默认自动分配空间了。所以能输出...
回复

使用道具 举报

千问 | 2009-3-12 11:50:10 | 显示全部楼层
实际上args数组是有值的,因为你在命令窗口中输入的参数(就是java lesson后的参数,当然你要以空格隔开)会传给agrs数组,所以你在用输出语句输出时就可以输出你自己输入的参数了。...
回复

使用道具 举报

千问 | 2009-3-12 11:50:10 | 显示全部楼层
告诉你什么叫args如:在命令行下,java lesson1 arg1,arg2,arg3这三个就是args[]数组的成员啦.一般没人这样在运行时才给参数的哦....
回复

使用道具 举报

千问 | 2009-3-12 11:50:10 | 显示全部楼层
你那个数组不是在命令行参数中吗first second就是为args赋值了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行