There is a difference between pointer addition and casted pointer addition, however. q = (int *) ( (int) p + 5 ); q = p + 5;