열렬히.뛰기

변수와 자료형

Language > 프로그래밍 언어 > C > 변수와 자료형

출력과 입력

출력 : printf()

c
sum = 0
printf("Hello world");
printf("두수의 합: %d", sum);
  • %d를 형식 지정자 라고 한다.

형식지정자

  • %d : 정수출력
  • %c : 문자출력
  • %s : 문자열출력
  • %f : float
  • %lf : double
  • %ld : long unsigned int

입력: scanf()

c
scanf("%d", %x);
  • 앞에는 형식지정자를 넣어준다.
  • 뒤에는 값을 저장할 변수의 주소를 넣어준다.

두 개를 동시에 입력받을 때는 다음과 같다.

c
scanf("%d %f", &number, &grade);

변수와 자료형

변수는 무조건 자료형과 같이 써줘야 한다.

c
int x;
int y;
int sum;

자료형의 종류

  • 정수형 : short, int, long, long long
  • 실수형 : float, double, long double
  • 문자형 : char

자료형의 크기

c
sizeof(x)
sizeof(10)
  • sizeof() 함수의 결과는 자연수다.
  • 그러나 그 타입은 long unsigned int이므로 출력 시 %ld를 해줘야 한다.

자료형 1 : 정수형

c
// 16비트 short, 32비트 int & long, 64비트 long long

// 부호있는 정수
short abc1
int abc2 
long abc3
long long abc4

// 부호없는 정수
unsigned short v1
unsigned int v2
unsigned long v3
unsigned long long v4 

// 상수 만들기
sum_1 = 123;
sum_2 = 123L; // long이라는 의미

# define EXCHANGE_RATE 1040; // 기호상수
const int NUM = 1140; // 기호상수

오버플로우

정수형 변수가 나타낼 수 있는 범위를 초과할 때 나타나는 현상

c
#include <stdio.h>
#include <limits.h>

int main() {
        short s = SHRT_MAX;
        unsigned short u = USHRT_MAX;

        s += 1;
        printf("s = %d\n", s);

        u += 1;
        printf("u = %d\n", u);
}

결과는 다음과 같다.

c
s = -32768
u = 0

자료형 2 : 실수형

c
// 실수 출력 형식 지정자

%10.4f // 전체 10자리 중 소수점 이하를 4자리로
%e  // 지수형식 출력

21.12 // double
21.12F // float 

자료형 3 : 문자형

c
// 아스키코드를 사용
char code = 65;
printf("%c", code)

수식과 연산자

c
// 계산연산자
a ** b // 제곱

// 논리연산자
a & b // and
a | b // or
a ^ b // xor