본문 바로가기

기술면접/정리하기

정리 (윤성우의 열혈 C프로그래밍)

1. printf

: 데이터 출력 함수

printf("1 더하기 1은 %d", 2);

출력 : 1 더하기 1은 2

 

2. scanf

: 데이터 입력 함수

int num1, num2;
int result;

scanf("%d %d", &num1, &num2);

result = num1 + num2;

printf("%d", result);

num1 입력 : 9
num2 입력 : 11

출력 : 20

 

3. 비트연산자

: 비트 단위로 연산을 진행

메모리 공간의 효율성을 높이고 연산의 수를 줄이는 요인이 되기도 한다.

연산자 연산자의 기능 결합방향
& 비트단위로 AND연산을 한다.
ex) num1 & num2;
두개의 비트가 모두 1일때 1을 반환
1 & 1 → 1
1 & 0 → 0
| 비트단위로 OR연산을 한다.
ex) num1 | num2;
두개의 비트 중 하나라도 1이면 1을 반환
0 | 0 → 0
1 | 0 → 1
^ 비트단위로 XOR연산을 한다.
ex) num1 ^ num2;
두개의 비트가 서로 다른 경우 1을 반환
0 ^ 0 → 0
1 ^ 1 → 0
0 ^ 1 → 1
~ 단항 연산자로서 피연산자의 모든 비트를 반전시킨다.
ex) ~num;
num은 변화 없음, 반전 결과만 반환
~0 : 1을 반환
~1 : 0을 반환
<< 피연산자의 비트 열을 왼쪽으로 이동시킨다.
ex) num<<2;
num은 변화 없음, 두칸 왼쪽 이동 결과만 반환
00001111 → 00111100
>> 피연산자의 비트 열을 오른쪽으로 이동시킨다.
ex) num>>2;
num은 변화 없음, 두칸 오른쪽 이동 결과만 반환
양수일 경우에는 
00110000 → 00001100 으로 되지만
음수일 경우에는 CPU에 따라
11110000 → 00111100 이 될수도 있고
11110000 → 11111100 이 될수도 있다.

 

4. 자료형

: 데이터를 표현하는 방법

자료형 크기 값의 표현범위
정수형 char 1바이트 -128 ~ +127
unsigned char 0 ~ (128 + 127)
short 2바이트 -32,768 ~ +32,767
unsigned short 0 ~ (32,768 + 32,767)
int 4바이트 -2,147,483,648 ~ +2,147,483,647
unsigned int 0 ~ (2,147,483,648 + 2,147,483,647)
long 4바이트 -2,147,483,648 ~ +2,147,483,647
unsigned long 0 ~ (2,147,483,648 + 2,147,483,647)
long long 8바이트 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
unsigned long long 0 ~ (9,223,372,036,854,775,808 + 9,223,372,036,854,775,807)
실수형 float 4바이트 ±3.4×10^-37 ~ ±3.4×10^+38
double 8바이트 ±1.7×10^-307 ~ ±1.7×10^+308
long double 8바이트 이상 double 이상의 표현범위

sizeof(변수 또는 자료형) : ()안의 변수 또는 자료형의 크기를 확인할 수 있다.

sizeof()는 함수가 아닌 연산자.

 

5. 다양한 자료형의 상수를 표현하기위한 접미사

접미사 자료형 사용의 예
U 정수형 상수 unsigned int unsigned int n = 1025U
L long long n = 2467L
UL unsigned long unsigned long n = 3456UL
LL long long long long n = 5768LL
ULL unsigned long long unsigned long long n = 8979ULL
F 실수형 상수 float float f = 3.15F
L long double long double f = 5.789L

 

6. const 키워드

: 변수를 이름을 지니는 상수로 만듦

int a = 100; //a는 변수
a = 10; //a는 변수이므로 값 변경 가능

const int A = 123; //A는 상수
A = 12; //A는 상수이므로 값 변경 불가, 따라서 컴파일 에러 발생

 

7. 데이터 손실의 최소화 기준

int → long → long long → float → double → long double

'기술면접 > 정리하기' 카테고리의 다른 글

리스트(List), 배열(Array)  (0) 2019.05.24
디자인 패턴  (1) 2019.05.22
객체 지향(OOP)  (0) 2019.05.14
자료구조와 알고리즘의 정의와 상관관계  (0) 2019.05.13
힙 메모리 최적화와 오브젝트 풀링  (1) 2019.05.10