Why iron corrodes but aluminium does not?
Corrosion
When, metals are exposed to the atmosphere, the atmospheric gases react with the metal atoms on the surface thus causing a gradual deterioration of the metal. This is called chemical corrosion. The atmospheric gases responsible for corrosion include Oxygen (O2), Carbon dioxide (CO2), Hydrogen sulphide (H2S), Sulphur dioxide (SO2), halogens and moisture.
Corrosion resistance by metals
Some metals resist corrosion by forming a protective layer of the metal oxide on its surface so that the metal atoms on the bulk of metal are not exposed to the atmospheric gases. For the formation of the protective layer, the following conditions are to be satisfied:
Both Iron and Aluminium form oxides with atmospheric Oxygen. In case of iron, the crystal structure of the Iron (Fe) and its oxide (Fe2O3) are not compatible. Therefore, the oxide layer will have cracks thus exposing the metal atoms in the bulk to atmospheric gases. This causes corrosion in the metal. But the aluminium metal (Al) and its oxide (Al2O3) has a compatible crystal structure and therefore, the oxide layer protects the metal atoms from corrosion.
Therefore, Iron corrodes while Aluminium does not.