본문으로 건너뛰기

printf() 함수 서식 문자

서식 문자 %d, %g, %c

%d: 10진수
%g: 실수
%c: ASCII (아스키 코드)
  1. printf("문자열") 출력 문자열 " "

    • 큰따옴표 " " 안에 있는 문자들의 조합을 " " 문자열 이라고 함
    • 즉, printf 출력 함수는 문자열을 출력함

    \n

    • 특수 문자 한문자를 의미함
    • new line 을 의미하며 ENTER 키와 같은 역할
  2. printf("%d", 정수)와 printf(" %g", 실수) 출력

#include <stdio.h>

int main(void) {
printf("100\n");
printf("5.5\n");
printf("%d\n", 100);
printf("%g\n", 5.5);
printf("%d %d\n", 10 ,20);
return 0;
}
실행 결과
100  
5.5
100
5.5
10 20
  • 문자열 100 출력 printf("100\n");

  • 문자열 5.5 출력 printf("5.5\n");

  • printf("%d\n", 100);
    서식 문자(Conversion Specifier) %d

    • 10진 정수를 문자열로 변환한 후 출력함

    • decimal의 약어

    • 정수 100을 문자열로 변환하여 출력함 정수 10은 컴퓨터 메모리에 1010으로 저장되어 있음, 연산은 가능하지만 출력할 수 없음

    • 실수 데이터와 정수 데이터

      • 실수 데이터는 소수점을 붙임 (10.0, 5.2)

      • 정수 데이터는 소수점이 없음 (10, 5, 3)

      • 실수와 정수는 컴퓨터 메모리에 저장되는 방식이 다름
  • printf("%g\n", 5.5);
    서식 문자(Conversion Specifier) %g

    • 연산은 가능하지만 출력할 수 없는 실수 5.5
    • 숫자 5.5를 각각 문자 '5', 문자 '.', 문자 '5'로 변환하여 출력
  • printf("%d\n", 10.0);

    • 실수 데이터와 정수 데이터 저장방식이 달라
      실수 데이터를 정수로 출력하면 0 이 출력됨
    • 즉, 출력하는 데이터 형식을 맞춰야 함
  • printf("%d + %d = %d\n", 10, 20, 30);

    • 문자열을 그대로 출력 함
    • 10, 20, 30 순서대로
  • printf("%d + %d = %d\n", 10, 20, 10 + 20);

    • 덧셈이 실행되어 30이 됨
  1. 아스키 코드: 컴퓨터에서 표현하는 문자 코드 패티리 영역의 2진 자릿값은 존영역의 1 개수에 따라 % 2 한 것 ex) 문자 'a'의 존영역 -> 110 0001 -> 1의 개수는 3 -> 3 % 2 = 1, 따라서 패리티는 1 -> 1110 0001 ex) 문자 'c'의 존영역 -> 110 0011 -> 1의 개수는 4 -> 4 % 2 = 0, 따라서 패리티는 0 -> 0110 0011

    • 열은 존 비트, 행은 숫자 비트

변수와 메모리 이해

변수는 데이터를 담을 수 있는 공간

#include <stdio.h>

int main()
{
int a; // a 라고 하는 정수 변수를 생성
a = 50; // 정수 50을 a에 대입

int n = 25;

printf("%d\n", a);
printf("%d\n", n);

return 0;
}
실행 결과
  50  
25
int a;
  • 메모리에 변수 a 가 정수를 저장할 공간을 확보
  • 주소는 임의로 컴퓨터가 확보함 (ex: 16번지를 확보)
  • 아직 데이터는 저장되지 않음
a = 50;
  • 변수 a에 정수 50을 2진수로 변환해서 저장담 (=는 대입 연산자)
  • 오른쪽 데이터를 왼쪽 변수에 대입
int n = 25;
  • 메모리에 변수 n이 정수를 저장할 공간을 확보
  • 주소는 이므이로 컴퓨터가 확보
  • 변수 n 에 정수 50을 2진수로 변환해서 저장

변수명을 만드는 규칙

  1. 영어 문자와 숫자를 사용할 수 있음
  2. 대소문자를 구분함
  3. 문자부터 시작해야 하고 숫자부터 시작하면 안됨
  4. _(under bar)로 시작할 수 있음
  5. C 언어의 예약어[ int, short, void, if, for, switch 등 ]는 사용할 수 없음
sizeof() 함수
  • 자료형의 크기를 알려줌
  • int 형이 4바이트
#include <stdio.h>

int main()
{
int number = 50;
printf("%d \n", number);
printf("%d \n", sizeof(number));

return 0;
}
실행 결과
  50  
4

int는 4바이트 === int는 32비트


a와 b 데이터 바꾸기

#include <stdio.h>

int main()
{
int a = 10, b = 20;

int t = a;
a = b;
b = t;
printf("%d %d\n", a, b);

return 0;
}
실행 결과
  20 10

ASCII 코드

#include <stdio.h>

main()
{
printf("%d\n", 'A');
printf("%c\n", 65);

return 0;
}
실행 결과
  65
A