Java Programming - Language Fundamentals - Discussion

Discussion Forum : Language Fundamentals - Finding the output (Q.No. 1)
1.
What will be the output of the program?
public class CommandArgsThree 
{
    public static void main(String [] args) 
    {
        String [][] argCopy = new String[2][2];
        int x;
        argCopy[0] = args;
        x = argCopy[0].length;
        for (int y = 0; y < x; y++) 
        {
            System.out.print(" " + argCopy[0][y]);
        }
    }
}

and the command-line invocation is

> java CommandArgsThree 1 2 3

0 0
1 2
0 0 0
1 2 3
Answer: Option
Explanation:
In argCopy[0] = args;, the reference variable argCopy[0], which was referring to an array with two elements, is reassigned to an array (args) with three elements.
Discussion:
36 comments Page 3 of 4.

Karthik said:   1 decade ago
public class Simple
{
public static void main(String[] argv)
{
//some program code goes here
}
}

example:

class Welcome
{
// A java program will start from here.
public static void main(String args[])

{
System.out.println(" Welcome to Java-Samples!!! ");
}
}

P .naresh said:   1 decade ago
What is the basic programming structure of java?

Poornima said:   1 decade ago
argCopy[0] = args;
x = argCopy[0].length;(x=3)

for (int y = 0; y < x; y++) i.e. (int y=0;y<3;y++)
argCopy[0][y] i.e. argCopy[0][0],argCopy[0][1],argCopy[0][2]

Invocation command is 1 2 3

argCopy[0][0] = 1
argCopy[0][1] = 2
argCopy[0][2] = 3


So output is 1 2 3.

Prateek Nanhorya said:   1 decade ago
This is very wrong question it's answer can't be like that its answer will be nothing because values of x is 0;.
(1)

Disha said:   1 decade ago
Please explain me.

Shiwam pandey said:   1 decade ago
Yes Rochu is correct and if we replace System.out.print (" " + argCopy[0][y]) ; with System.out.print (" " + argCopy[1][1]) ;.

Then it will print three times null.

Since default value of string is null.

Rochu said:   1 decade ago
Tajinderpal Singh is wrong because argcopy is an 2D array . it only have argcopy[0][0],argcopy[0][1],argcopy[1][0],argcopy[1][1].
it does not have memory location like argcopy[0][2]=3.

Sonal Bhutada said:   1 decade ago
I m not able to understand. Please explain it in a much easier way.

Ravindra said:   1 decade ago
How it is possible ?

Tajinderpal singh said:   1 decade ago
Here argcopy is declared as a two dimensional array when argcopy[0] is assigned args which is an array holding command line argument args[0],args[1],args[2].Now argcopy[0] is the single row i.e the first row of the two dimensional array without any coloumn specified .when args is assigned to argcopy[0],argscopy behaves as two dimensional array b'coz now it has column specified

So,

argcopy[0][0]=1
argcopy[0][1]=2
argcopy[0][2]=3

which is been printed in the for loop.


Post your comments here:

Your comments will be displayed after verification.