int fred() { struct s { int i; } *p; int i; // order of evaluation (GCC is different) /* i = sizeof( (int) {3} ); i = sizeof (int) {3}; */ // operators ! i; ~i; +i; -i; *p; ++p; --p; p++; p--; i+i; i-i; i*i; i/i; i%i; i^i; i&i; i|i; ii; i=i; i==i; i!=i; i<>i; i<=i; i>=i; i&&i; i||i; p->i; i+=i; i-=i; i*=i; i/=i; i%=i; i&=i; i|=i; i^=i; i<<=i; i>>=i; i?i:i; // cast /* double d; int *ip; (int *) i; (* int) i; ([char, int *])[d, d]; [i,ip,ip] = ([int, * int, int *])[1,(void *)2,(void *)3]; [i,ip,ip] = ([int, * int, int *])([1,(void *)2,(void *)3]); */ }