1. char 형에다가 '' 로 문자 두개를 집어넣을 때


b가 나오는 이유는 char형이 오른쪽으로 8비트만을 가져옴

char ab = 'ab'; 를 하면 왼쪽으로 a 8비트 오른쪽으로 b 8비트가 들어가서 b만 char에 들어감 (어디에 저장된다고 배웠던거 같은데 까먹음. 버퍼였던가?)


2. 쌍따옴표 차이


b에서 0이 나온 이유는 C언어에서 쌍 따옴표 = 문자열이기 때문에 맨 마지막에 널() 문자를 삽입해줌.

즉 char b = 'b0'; 하고 똑같은 표현식임. 그래서 1번의 이유 때문에 b에 널 문자가 들어가고 그걸 출력하면 0 인거임


3. char* 형


이것도 마찬가지로 따옴표로 둘러져 있으니까 char *x = "abc0";임

%s 는 문자열의 주소를 받고, 널문자가 나올떄까지 출력하니까 abc가 출력된거.



그래서 &x[1]를 집어 넣어주면 b부터 널 문자까지인 bc가 출력됨.





디씨 병신이라 널문자 안되서 그냥 0 썼음