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 2 of 4.

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.

Lachya S said:   1 decade ago
For me code compile successfully but when I was giving 1 2 3 as an command argument it is throwing error like 1 is not recognised as an internal or externalcommand. what should i do? Please give me solution for that issue.

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.

Arun kumar said:   1 decade ago
Here argCopy[0](reference of one dimensional array) is referring args. This means, argCopy[0] is pointing the memory location of args. Thats why it prints the values which are stored in args.

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.

Yair said:   1 decade ago
args is an array with 3 elements - while initially argCopy[0] is a 2 element array - By inserting args into it:

argCopy[0] = args;

It is re-assigned to a three element array.

Priyanka said:   8 years ago
String [][] argCopy = new String[2][2];

argCopy is declared with 2-dimensional array. Their size is 2. How can be assigned the value to a[0][2]?

Alexander said:   1 decade ago
String [][] argCopy = new String[2][2];

argCopy is declared with 2 dimensional array. Their size is 2. How can be assign the value to a[0][2] ?

Santosh kumar said:   1 decade ago
Argcopy declared with in two dimensional array but args initialised to argcopy[0]. Is it correct. Please explain.

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)


Post your comments here:

Your comments will be displayed after verification.