Hey,

ja das 24C16 hat keine Adresspins -> ergo nur eine Adresse möglich!
Das 24C16 ist ein 8Bit EEPROM, sprich jede Speicherzeille ist 8Bit breit...ein Integer würde also zwei Zellen benötigen.
Stell dir das EEPROM wie eine Tabelle mit 2000 Zeilen vor, wovon jede Zeile 8 Spalten hat
Das Programm schreibt bei der ersten Schleife 10 Werte in 10 Zellen (Schleife mit der Variable A) und ließt diese dann aus (Schleife mit der Variable B).
I2Cstart erzeugt eine Startbedingung um eine Kommunikation einzuleiten. Dadurch wird jedes Device am Bus "aufgeweckt" und horcht auf den Master.
Dann sendet I2Cwbyte die Adresse um ein(!) einzelnes IC anzusprechen. Und danach wird die Registeradresse (in deinem Fall die Adresse der Speicherzelle) gesendet.
Das zweite I2cstart erzeugt eine NEUE Startbedingung (kannst glaube ich auch repeat oder so verwenden...ka wie der Befehl heißt).
Die genaue Kommunikation siehst du hier (Seite 16 u. 18 ):

http://www.farnell.com/datasheets/1700034.pdf

Auf Seite 18 steht "Random Access Read"...das ist dein Fall und dann siehst du, dass das IC nach der Adresse eine zweite Startbedingung haben will.
Die Adresse steht im Datenblatt (bei dem EEPROM auf S. 13)...da du keine Adresspins hast, sind diese automatisch 0.
Deine Adresse wäre also 1010 (der feste Teil für alle EEPROMs der Reihe) + drei Adresspins die bei dir 0 sind, da nicht vorhanden + das RW Bit.