Это "подсказка" или "указаение"(по-русски:) для компилятора. Т.е. считывать указанное число как заданный тип.
Так же есть:
unsigned int i = 0U;
Т.е. Вы компилятору указываете что, 0(null)именно unsigned. На заметку: unsigned null != null :) . Были случаи, когда статический анализатор(Lint) ругался на такое:
unsigned int someVar = 55;
if( 0 == someVar )
{
..
}
По умолчанию компилятор 0 воспринимает как "signed int", а анализатор ругнулся на сравнение знаковой(signed)и беззнаковой(unsigned int)переменной.