My friends and I are having an argument about this little piece of code:
#include <stdio.h>
#include <stdio.h>
int foo (int k) 
{
    int i, n;
    for (i = i ? 0 : i, n ^= n; i < sizeof(k) * 8;)
        n += k >> i++ & ~-2;
    return n;
}
I suspect it won't get compiled because i is uninitialized, but my friends think it will. What do you think? 
 
     
    