B *cp = 1234;, *cprefers to only one byte, the first (lowest address) byte val2.
In assignment, the value of the right-hand side is converted to the type of the left-hand side. Thus, 1234 is converted to char.
. , C, 1234 , char. ( C char , .) , char .
char , : 1234 char ( 255, 256). 1234 210, , *cp.
char 1234 char, . C -46.
, cp cp = &val2;, val2. val2. C , ( ), C , ( ). ( , , .)
C , , , C , , int, , C - . .
, , char - , . , , short char, short *sp = &val2; *sp = 0;, , undefined.