Q:

Explanation of this C Program

Considering 64 bit
#include<stdio.h>

int main()

{

    unsigned a=0xffffffff;

    a=~a;

    printf("%u\n",a);

    printf("%x\n",+  +  a);
    return 0;

}
OUTPUT:
0
0

after  taking ~a , a is now 0. but in statement "+ + a". "a" is not incrementing why? does space matters here or what ? 
i am asking for output explanation ?

A:

+ + a is parsed as the unary + operator applied twice, so the value remains unchanged.
+(+a) is what the compiler saw, which is just 0 in this case

A:

I think both plus are acting as unary operator here. "Since + and - both can act as unary operator.", so here no effect on "a". it remains 0.
if ++a; then this is prefix increment operator and "a" will become 1.

