본문 바로가기
C언어 공부

03. 변수 선언, 정수형, 실수형, 서식문자(변환문자)

by 나노다 2024. 10. 13.

변수 Variable 바뀔 수 있는 어떤 값을 보관하는 곳.

[전체 코드]

#include <stdio.h>
int main() {
    int a = 123; // 정수형 선언
    float b = 3.141592f; // 실수형 선언
    double c = 3.141592; // 실수형 선언
    
    printf("a는 %d과 %d과 %d을 더해서 %d \n", 100, 20, 3, a); // 변환문자와 인자
    
    printf("a는 %o \n", a); // 8진수 정수형 변환문자
    printf("a는 %d \n", a); // 10진수 정수형 변환문자
    printf("a는 %x \n", a); // 16진수 정수형 변환문자
    
    printf("a는 %f \n", b); // 실수형 변환문자
    printf("a는 %f \n", 1.0);
    
    printf("a는 %5d \n", a); // 변환문자 서식
    printf("b는 %.2f \n", b);
    printf("c는 6.3f \n", c);
    
    return 0;
}

 

[정수형 선언]

// 선언해두고 이후에 값 대입
int a;		
a = 123;
// 선언하면서 값도 대입
int a = 123;
  • a라는 변수에 정수형의 데이터를 보관하겠다는 뜻.
  • 일반적으로 정수 데이터 보관엔 int형 변수를 사용.

[정수형 선언 유형]

타입 크기 범위
int 최소 2 바이트,
보통 4 바이트
signed -2,147,483,648 에서 2,147,483,647 까지
unsigned 0 에서 4,294,967,295 까지
char 1 바이트 signed -128 에서 127 까지
unsigned 0 에서 255 까지
short 최소 2 바이트 signed -32,768 에서 32,767 까지
unsigned 0 에서 65,535 까지
long 최소 4 바이트  
long long 최소 8 바이트 signed -9223372036854775808 에서 9223372036854775807 까지
unsigned 0 에서 18446744073709551615 까지
  • signed : 음수와 양수 모두 표시 가능한 대신 양수 범위 줄어듦. 그냥 int처럼 언급 없으면 보통 signed.
  • unsigned : 양수만 표시 가능한 대신 양수 표현 범위가 두 배 늘어남.

[정수형 변환문자]

printf("a는 %d과 %d과 %d을 더해서 %d \n", 100, 20, 3, a);
//          1    2    3           4       1    2   3  4
  • 인자들이 밑의 숫자에 맞는 순서대로 대입돼 결과에 출력.  "a는 100과 20과 3을 더해서 123"
// 8 진수
printf("a는 %o \n", a);
// 10 진수
printf("a는 %d \n", a);
// 16 진수
printf("a는 %x \n", a);
  • %o : 인자의 값을 8진수로 변환해 출력. "a는 8진수 173"
  • %d : 인자의 값을 10진수로 변환해 출력. "a는 10진수 123"
  • %x : 인자의 값을 16진수로 변환해 출력. "a는 16진수 7b"

 

[실수형 선언]

float b = 3.141592f;
double c = 3.141592;
  • 소수를 표시할 수 있는 실수형 변수 선언. 만약 정수형 변수에 소수를 대입하면 소수 부분은 다 버려져서 출력.
  • 정수형에 비해 다룰 수 있는 숫자의 크기가 엄청나지만, 처음 몇 자리 숫자만 정확하고 나머진 10의 지수 형태로 출력.
  • float형 변수에 값을 대입할 때엔 뒤에 f를 꼭 붙여줘야 함. 그렇지 않으면 double형으로 인식해 오류 발생 가능.

[실수형 선언 유형]

타입 크기 범위
float 4 바이트 10진수로 대략 6 자리까지 정확
double 8 바이트 10진수로 대략 15 자리까지 정확
long double double 보다 크기가 크고, 정밀도가 높음

 

[실수형 변환문자]

printf("a는 %f \n", b);
printf("a는 %f \n", 1.0); // 소수점이 있는 형태로 써줘야 함
  • %f : 실수형인 인자를 실수형으로 출력.  만약 출력할 인자가 변수가 아니고 숫자라면,
            꼭 소수점이 붙은 형태로 써줘야 올바르게 출력됨.

[변환문자 서식]

// 출력할 숫자의 총 자리수는 5
printf("a는 %5d \n", a);
// 출력할 숫자에서 소수점 자리수는 2
printf("b는 %.2f \n", b);
// 출력할 숫자의 자리수는 총 6, 소수점 자리수는 3
printf("c는 6.3f \n", c);
  • 만약 출력할 인자의 자리수가 변환문자에 설정된 값 보다 크다면, 출력할 인자의 자리수대로 표현함.
    a가 12345라면 "%3d"일지라도 12345를 출력.
  • 변환문자에 설정된 소수점 자리는 반드시 지키며 출력.
    b가 3.14이고 "%.5f"라면 3.14000을 출력.
  • 총 숫자의 자리수를 따질 때, 빈 자리와 소수점도 포함해서 셈.
    빈 자리를 임의로 _로 표기하자면 세번째 코드는 "_3.141"로 출력. 

변환문자 유형

 

[변수 선언 주의사항]

1. 변수 선언은 최상단에 해주는 편이 좋음

2. 웬만하면 영어로 작명하고, 영어와 숫자와 _로만 구성할 것. 이때 숫자가 제일 앞에 올 순 없음

// 얘는 되는데
int my_book01
// 얘네는 안 됨
int my book01
int 01my_book

 

3. 프로그래밍 언어의 예약어는 변수명으로 사용하지 말자

// 애초에 오류 남
int printf
int int

 

4. 작명 스타일을 일정하게 고수해주자

// 어느 방식이든 하나로 통일
int ThisIsVariable;
int this_is_variable;