Fun surprising things
Patrick Schluter
Patrick.Schluter at bbox.fr
Wed Oct 31 14:54:48 UTC 2018
On Wednesday, 31 October 2018 at 14:00:14 UTC, bauss wrote:
> What's the output of this program? (Try to figure it out
> without running it.)
>
> ```
> int c = 0;
>
> int a()
> {
> return c++;
> }
>
> int b()
> {
> return c--;
> }
>
> void main()
> {
> import std.conv : to;
> import std.stdio : writeln;
>
> writeln(to!string(a) ~ to!string(b));
> }
> ```
>
> If your answer is "10" then you're wrong.
>
> You can get the result and answer here:
> https://run.dlang.io/is/idZurR
01 is the other possible result. It all depends in what order a
and b are called. ~ is not a sequence point (does D even have
that typical C notion of sequence points?) so the order of
evaluation is at the discretion of the compiler.
therefore -10 or 01 are both right.
More information about the Digitalmars-d
mailing list