※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 예1) int 자료형에서 데이터 overflow시 전혀 다른 값이 나오는 이유 int 자료형은 2byte의 크기의 메모리를 사용한다. 2byte를 bit로 환상하면 16bit가 되는데 그 중 1bit는 양, 음수를 판별하는 부호로 사용된다. 그래서 실제론 15bit를 사용하는데, 이는 unsigned int와 signed int의 표현 범위가 달라지는 이유이기도 하다.(unsigned는 부호비트 1bit를 연산비트에 더해 16bit를 사용하기 때문에) 만약 int형 변수(signed int)에 15bit로 표현하기 부족한 값이 들어간다면 그 오버된 값이 2진수로 변환되어, 그 값이 15bit에 잘려서 ..
본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 메모리를 중앙처리장치(CPU)가 하드디스크에서 리소스를 불러오기 전 거쳐가는 장소이다. 비유를 들어 CPU가 작업자, 하드디스크를 창고, 메모리를 작업대라고 가정 했을 때, 창고 (하드디스크)의 물건을 작업자(CPU)가 작업을 하기 위해 작업대(메모리)로 불러오는 것과 같다. CPU가 C언어로 코딩 된 소스파일을 빌드 하면서 메모리를 할당 받게 된다. 여기서 변수를 선언한다는 것은 메모리의 일정 부분을 할당 받아 쓰겠다는 뜻인데, 이는 작업자 (CPU)가 작업대(메모리)에서 특정 부분을 ‘어떠한 작업’을 위한 구역으로 사용하겠다고 비유할 수 있다. 실제로 int 형 변수를 선언하게 되면 메모리 상에서 in..
본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 표준 입력 함수 getchar() : 표준 입력 장치(키보드)가 입력한 내용이 버퍼에 들어가고 그 버퍼에 들어있는 단위문자 하나를 가져온다. 예를 들어 char ch로 캐릭터형 변수가 선언 되었다면 ch=getchar로 입력받을 수 있다. 다만 크기가 단일문자 하나로 제한되며, ENTER KEY가 단일문자의 속성을 가지고 있으므로 ENTER KEY를 입력시 getchar로 ENTER KEY가 버퍼에서 불려올 수도 있다. 이를 방지하려면 fflush(stdin) 함수를 사용한다. prtinf로 %c로 출력이 가능하며 %s로 출력 시 빌드는 에러 없이 진행되나 실제 구동에서 에러가 발생하였다. 그리고 개인적으..