Arduino serial port eats data for 3 seconds before it sends? With the source code below, I'm getting what I think to be strange behaviour with the serial port output.

void setup() {
  Serial.begin(9600);
}

int c = 0;    
void loop() {
  Serial.println(c++);
}


Presumably what this will do is starting printing incrementing numbers, one on each line, starting from 0. However, my serial monitor only starts printing these numbers after the 3000 mark. I found this behaviour only after discovered in another sketch that I was losing data at the beginning.

Is this normal Arduino behaviour? Or a serial monitor problem? Or something else?
Is this a Leonardo or Yun?  If it is, you have to wait until the Serial object says the USB connection is really ready:

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB
}


Read this.

Because you did't wait, your loop is able to execute 3000 times before Serial actually sends something back to the PC.