There's an interesting post about how clever code is bad. It outlines some bad practices, and some good ones to use in their stead, such as the snippet:
// bad
while (*d++ = *s++);
// good
strcpy(destination, source);
But I'm here to hammer that point home and show to you that shorter code can, and often does, perform a lot worse than a readable alternative.