기술면접/정리하기
정리 (윤성우의 열혈 C프로그래밍)
프로그램 호랭
2019. 6. 19. 16:21
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