July 09

Hi All,

I didn't know compiling was bottom-up. This example proves that. Because in single-line expressions, it takes value from the right, firstly.

void main()
{
    int n;         // true (n == 0)
    int i = 1;     // true (i == 1)
    int j = i = n; // all numbers are 0

    n =
    i =
    j =

    1;              // all numbers are 1

    // ascertaining: n = i = j = 1;

    assert(j);
    assert(i);
    assert(n);
}

SDB@879

July 09

On Saturday, 9 July 2022 at 10:12:00 UTC, Salih Dincer wrote:

>

Hi All,

I didn't know compiling was bottom-up. This example proves that. Because in single-line expressions, it takes value from the right, firstly.

void main()
{
    int n;         // true (n == 0)
    int i = 1;     // true (i == 1)
    int j = i = n; // all numbers are 0

Yes, the = operator is right-associative in pretty much all C-like languages, so an expression of the form a = b = c is equivalent to a = (b = c).