Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
June 01, 2007 Simple Array Question | ||||
---|---|---|---|---|
| ||||
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]); } } ----------------------------------------------------------------------- |
June 01, 2007 Re: Simple Array Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to Silv3r | 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.
|
June 01, 2007 Re: Simple Array Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to Silv3r | Reply to Silv3r, > 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 > > if(args[i][] == args[][i]) // why does args[i][] equal args[][i]? args[i][] == get args[i], take all of it as a slice args[][i] == get all of args as a slice, take [i] of it in an expression [] is the same as [0..$] |
June 01, 2007 Re: Simple Array Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to BCS | Reply to BCS, This reminds me of something I have been finding handy recently: //take a slice starting at i and of length j: arr[i..$][0..j] the alternative is a bit uglier IMHO arr[i..i+j] |
Copyright © 1999-2021 by the D Language Foundation