Need help in understanding RFID code

Hi fellas!

I recently started working with MFRC522 RFID module. I am trying to store personal information about a user inside the tag itself. For that, I referred to the example code in the miguelbalbo library.

So what this code is doing is, it's getting serial input from PC about the family name. I can't understand how this particular section code has been made. Specifically, why, for block =1 status = mfrc522.MIFARE_Write(block, buffer, 16); statement is written , whereas for block =2, status = mfrc522.MIFARE_Write(block, &buffer[16], 16; is being written. Can anybody explain why '&' is being used here?

 byte buffer[34];  
        byte block;
        MFRC522::StatusCode status;
        byte len;
        
        Serial.setTimeout(20000L) ;     // wait until 20 seconds for input from serial
        // Ask personal data: Family name
        Serial.println(F("Type Family name, ending with #"));
        len=Serial.readBytesUntil('#', (char *) buffer, 30) ; // read family name from serial
        for (byte i = len; i < 30; i++) buffer[i] = ' ';     // pad with spaces
        
        block = 1;
        //Serial.println(F("Authenticating using key A..."));
        status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid));
        if (status != MFRC522::STATUS_OK) {
           Serial.print(F("PCD_Authenticate() failed: "));
           Serial.println(mfrc522.GetStatusCodeName(status));
           return;
        }
        else Serial.println(F("PCD_Authenticate() success: "));
        
        // Write block
	status = mfrc522.MIFARE_Write(block, buffer, 16);
	if (status != MFRC522::STATUS_OK) {
	    Serial.print(F("MIFARE_Write() failed: "));
	    Serial.println(mfrc522.GetStatusCodeName(status));
            return;
	}
        else Serial.println(F("MIFARE_Write() success: "));

        block = 2;
        //Serial.println(F("Authenticating using key A..."));
        status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid));
        if (status != MFRC522::STATUS_OK) {
           Serial.print(F("PCD_Authenticate() failed: "));
           Serial.println(mfrc522.GetStatusCodeName(status));
           return;
        }
        
        // Write block
	status = mfrc522.MIFARE_Write(block, &buffer[16], 16);
	if (status != MFRC522::STATUS_OK) {
	    Serial.print(F("MIFARE_Write() failed: "));
	    Serial.println(mfrc522.GetStatusCodeName(status));
            return;
	}
        else Serial.println(F("MIFARE_Write() success: "));

A look into pointers for array resolved this.