printf() 함수 서식 문자
서식 문자 %d, %g, %c
%d: 10진수
%g: 실수
%c: ASCII (아스키 코드)
-
printf("문자열") 출력 문자열 " "
- 큰따옴표 " " 안에 있는 문자들의 조합을 " " 문자열 이라고 함
- 즉, printf 출력 함수는 문자열을 출력함
\n
- 특수 문자 한문자를 의미함
- new line 을 의미하며 ENTER 키와 같은 역할
-
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이 됨
-
아스키 코드: 컴퓨터에서 표현하는 문자 코드 패티리 영역의 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진수로 변환해서 저장
변수명을 만드는 규칙
- 영어 문자와 숫자를 사용할 수 있음
- 대소문자를 구분함
- 문자부터 시작해야 하고 숫자부터 시작하면 안됨
- _(under bar)로 시작할 수 있음
- 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