C언어에서 scanf 함수를 사용할 때 막연하게 scanf("%d", &data); 식으로 문자열 리터럴과 주소를 인수로 전달하면 된다고 외우기만 했다면 사실 완전히 이해한 것이라고 볼 수 없다. scanf 함수의 원형을 보면 상수 개념과 포인터 개념이 모두 녹아있다.이를 이해하기 위해서는 C언어가 메모리 상에서 문자열과 일반 변수를 어떻게 취급하는지, 그리고 함수의 원형이 요구하는 데이터의 형태가 무엇인지 알아야 한다. 1. 기본 개념: 변수와 상수, 그리고 문자열 리터럴 데이터는 프로그램 내에서 변경 가능 여부에 따라 변수와 상수로 구분된다.변수(Variable): 선언된 메모리 공간의 값이 실행 중에 변할 수 있다.상수(Constant): 한 번 정해진 값을 변경할 수 없다. const 키워드를..