출력과 입력
출력 : 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