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 썼음
널문자 잘활용하면 mcu에서 가변길이로 유사트 통신이 가능해짐 - dc App
new 안하고 char*a=""; 해도 됐었나? 스트링만 써서 기억이 안나네
C에는 new가 없지 않나.
요즘 c++ 만 해서 그런데 c에서는 멀록이었나?
멀록은 맞는데 맨처음 초기화할땐 안써도 되는걸로 알아여
엔디안차이 아님? - dc Cpp
천재들이시네여들
문자열은 포인터인데 널문자가 뭔상관 포인터가 00으로 끝나는지 확인해야할거같음 - dc App