First of all the code has undefined behavior. It is not necessary that you will get exactly
bc
because this sequence of characters is not terminated by zero character.
As for the pointer arithmetic. If l1 points to the first character of character sequence 'a', 'b', 'c', that is to 'a', then l1 + 1 will point to the next character in the sequence that is to 'b'.
So after statement
l2 = l1 + 1;
the value of l2 will be equal the value of l1 + 1. Address of the character array allocated as new char[4]; will be lost. No pointer will store the address.