Simple Array Question

Johan Granberg lijat.meREM at OVEgmail.com
Fri Jun 1 13:15:06 PDT 2007


Silv3r wrote:

> When using multi-dimensional arrays I easily get confused as to the order
> of the notation. But why does args[i][] equal args[][i] (code below)? I
> assume args[i][] is the more correct version as only args[i][0] gives the
> correct results?
> 
> -Silv3r
> 
> -----------------------------------------------------------------------
> import std.stdio;
> 
> void main(char[][] args)
> {
>  writefln("args.length = %d\n", args.length);
>  for (int i = 0; i < args.length; i++)
>  {
>   if(args[i][] == args[][i]) // why does args[i][] equal args[][i]?
>    writefln("Why does this work? [%d] = '%s'", i, args[i][]);
>   writefln("<%s>,<%s>", args[i][0],args[0][i]);
>  }
> }
> -----------------------------------------------------------------------

ok, first args[] is the same as writing only args as a slice of an entire
dynamic array is itself. 

second think of the array brackets as a stack

(char[])[] args

so args is an array (of char arrays)
if you take an element of that you eliminate the outer brackets
char[] a=args[0];

hope this helps and if I misunderstood the question I'm sorry.


More information about the Digitalmars-d-learn mailing list