*C언어 변수타입 Show
*C언어 변수 크기 확인 ( sizeof(변수명) )
*모든 변수 타입의 크기 (바이트) - 1 byte = 8 bit
*C언어 포인터 프로그래밍 언어를 통틀어 변수는 매우 중요한 개념이다. 변수(variable)란 프로그램에서 일시적으로 데이터를 저장하는 공간으로, 프로그래의 성능과 코드의 재사용성에 중요한 역할을 한다. 변수를 사용하는 이유아래의 두 코드를 비교해 보자.
width와 height를 받아 출력문에서 계산하여 바로 보여줄 수 있다.
이는 area 변수를 할당하여 면적을 구해준 뒤 출력문에서 area를 출력한다. 코드의 길이로 보면 위의 코드가 더 간결해서 더 효율적인 코드로 보일 수 있지만, 아래의 코드가 더 권장된다. 이유는 아래의 상황들로 이해할 수 있을 것이다. 만약 해당 면적의 2배에 해당하는 면적도 구해달라는 요청이 올 수도 있다. 또는 1/2에 해당하는 면적도 구해달라고 할수도 있다. 그 때 마다 출력문을 바꾸어 주어야 한다. 또는 주석 없이 아무것도 모르는 개발자가 저 코드를 맞이하게 될 수도 있다. area라는 변수 명 없이 width*height를 보고 면적을 구하는 것이구나! 를 직관적으로 알기 힘들 수 있다.(지금은 간단한 코드이지만 복잡할 수록 변수명이 없다면 코드를 이해할 수 없게 된다.) 그렇지만 이런 변수를 남용해서는 안된다. 프로그램의 성능관리를 위해 변수의 자료형을 구분하는 것은 필수적이다. 변수의 자료형변수는 다양한 값을 보관하는 하나의 박스라고 생각하면 된다. 값을 변경할 수 없는 상수는 뚜껑이 닫힌 상자라고 생각하면 되겠다. 그런데 모든 값을 하나의 모양과 사이즈의 상자에 넣으면 다양한 문제가 발생할 것이다. 모양이 안맞거나 사이즈가 너무 작아 값을 넣을 수 없거나, 사이즈가 너무 커서 값을 보관하고도 낭비되는 공간이 많을 수 있는 것이다. 그래서 변수에 자료형을 두어 구분한다. 상자의 모양과 사이즈를 지정해주는 과정이라고 생각하면 된다. 자료형은 크게 3가지가 있다. 숫자(정수), 숫자(실수), 문자. 사실은 문자형도 정수형에 포함된다. 범위를 초과하여 값을 저장하려고 하면 예상치 못한 값, 즉 쓰레기값이 저장된다.
위의 표 보다는 아래의 그림이 더 외우기 쉬울 것 같다. 정수형소수점 없는 수를 담는 타입이다. 그 중 가장 많이 사용하는 타입은 int형으로, 최대 2147483647 까지 값을 담을 수 있다. 운영체제마다 다르지만 보편적인 64bit의 경우 4바이트로 처리한다. 실수형소수점이나 지수가 있는 수를 담는 타입이다. 예전 코드나 글을 확인하면 float 형이 많이 쓰이는 것을 확인할 수 있지만. 최근 추세는 double형임을 알아두면 좋겠다. 문자형말 그대로 숫자가 아닌 문자 값을 담는 타입이다. " ''와 같은 따옴표를 사용하여 표현해도 되고, 아스키코드(ASCII)값을 사용하여 값을 지정해도 된다. 위에서 문자형도 정수형에 포함된 이유는, 사실 C는 char 자체를 아스키코드 숫자(정수)값으로 처리하고 있기 때문이다. 예를들어 다음 코드를 보자.
둘다 1이지만, 이 둘을 모두 숫자형으로 출력했을 때에는 num은 1 , character는 49로 출력될 것이다. 문자 1의 ASCII 코드 값이 49이기 때문이다. 반대로 이 둘을 모두 문자형으로 출력했을 때에는 num은 SOH가 출력될 것이다. ASCII 1은 Start of Header 문자형을 뜻하기 때문이다. 서식 지정자서식지정자는 해당 변수를 출력할 때 출력 형식을 지정해준다. 예를 들어 int 타입 변수를 출력한다면 %d를 사용하는 식이다. 이렇게 int 형인 grade는 %d로 출력해주고, char가 여러개인 문자열 형인 name은 %s로 출력해준다. 이 때, 해당 변수의 주소값을 알려줘야 그 주소에 있는 값 1과 world를 출력해주므로 변수명 앞에 &를 붙여줘야 한다. 종종 쓰이는 서식 지정자들만 표로 정리해보았다. float 형이라고 꼭 %f로만 출력해야하는 것은 아니다. float 형을 int형 서식 지정자인 %d로 출력하면 소숫점이 잘린 채 출력될 것이다. 또한 어떤 변수를 %p로 출력하면 그 변수의 주소가 출력될 것이다. 변수를 잘 관리하는 것은 개발자의 기본적인 임무이다. 아주 기초적인 내용이면서도 그렇기에 대충 사용할 수도 있는 부분이니, 한번 잘 배워두면 좋다고 생각한다. C언어 , C++ , 서식 지정자 , 출력 형태 , 변수 , 자료형 , type , 타입 , 변수의 개념 , 상수의 개념 , 자료형의 개념 , data type , 쉽게 풀어쓴 c언어 Express 제 4장 |