반응형
Notice
Recent Posts
Recent Comments
Link
JUST DO IT PROJECT
C 언어 강좌 기초 요약: 기수법, 메모리, 변수, 입출력 본문
반응형
C 언어 기초입니다.
이미 알고 있는 지식들을 간단하게 훑어보면서 잊고 있었던 주의사항은 없는지 알아보려고 합니다.
- 기본 내용은 Psi (이재범)님의 씹어먹는 C언어를 참고하여 작성하였습니다.(https://modoocode.com/)
- 첨언은 주황색으로 표시됩니다.
- 내용이 추가/변경 될 수 있습니다.
Hello world
- #import <stdio.h> : Standard Input Output header
- \n : 개행문자
- 함수 반환값의 의미
- return 0: 프로그램이 무사히 종료되었음
- return 1; 오류 발생
- 주석: 컴파일러가 무시하는 부분.
- // 한줄 주석
- /* 여러줄 주석 */
기수법 (Numerical System)
: 수를 표현하는 방법
- 2^100
- 밑 base : 2
- 지수 exponent: 100
컴퓨터 메모리
- 종류
- 휘발성 메모리 (RAM, Random Access Memory): 데이터에 랜덤하게 접근할 수 있어 ROM 보다 속도가 빠름.
- 비휘발성 메모리 (ROM, Read Only Memory)
- 단위
- 비트 (bit): 메모리소자는 0 또는 1 값을 보관할 수 있음.
- 바이트 (byte): 8개 비트
- 니블 (nibble): 4비트, 잘 쓰이지 않는 단위
- 워드 (word): 2바이트, 16비트, 0 ~ 65536
- 더블워드 (double word): 2워드 = 4바이트 = 32비트 0 ~ 4,294,967,295 (약 42억)
변수
- 32 비트 CPU에서는 최대 2^32 (4GB, 약 42억개)의 주소가 있음
- 0x00000000 ~ 0xFFFFFFFF
- 32 비트 CPU는 int형 변수를 가장 빨리 처리함
- 변수 타입, 자료형:
- char: 1 byte, -128 ~ 127
- short: 2 bytes, -3,2768 ~ 3,2767
- int: 4 bytes, -21,4748,3648 ~ 21,4748,3647
- long: 4 bytes,-21,4748,3648 ~ 21,4748,3647
- bool: 1 byte, true or false
- float: 4 bytes, +/- 3.4e +/-38 (~ 7 digits)
- double: 8 bytes, +/- 1.7e +/- 308 ( ~15 digits)
- long double: 8 bytes, +/- 1.7e +/- 308 ( ~15 digits)
- 정수 표현 방법
- %d: 10진수
- %o: 8진수
- %x: 16진수
- 실수 표현 방식
- %f: float, double형
- 숫자 뒤에 f를 붙여서 float 형을 표시해줌 e.g. 10.12f
- printf에서 %f 이용해 수를 출력할 때는 소숫점을 뒤에 붙여주어야 함 e.g. printf("%f",1.0);
- 기타 출력 양식 지정
- %5d: 가능하다면 5자리로 맞춰서 출력 e.g. 12345, 1234, 123
- %.3f: 무조건 소숫점이하 3자리까지 출력. e.g. 0.123, 0.100
- 변수 선언
- C에서는 최상단에 몰아서 변수 선언
- 변수명은 알파벳,숫자,_ (underscore)로 구성 가능
- 대소문자 구분
- 숫자로 시작할 수 없음 / 숫자로 끝날 수는 있음
- 띄어쓰기 안됨.
- 예약어 안됨 (e.g. int, double, break, continue ...)
연산자
- 산술 연산자 (Arithmetic Operator): + , - , * , / ,% (나머지)
- 대입 연산자 (Assignment Operator): =
- int a = 10; int형 변수 a 에 10을 대입.
- 10 = a; (x)
- int a,b,c,d; a=b=c=d=10;
- (정수형 변수) (연산) (정수형 변수) == 언제나 정수형: 간단하지만 종종 간과하는 부분. 이 부분에서 버그가 많이 발생
- int a = 10; int b = 3; a/b == 3
- 산술 변환: 자료형이 다른 두 변수의 연산 결과는 숫자 범위가 큰 자료형으로.
- float a = 0.3; int b = 1; a * b = 0.3;
- 증감 연산자: ++ --
- postfix: a++; b--; 결과값 반환 후 1 더해줌
- prefix: ++a; --b; 1을 더해준 후 결과값 반환
- 비트 연산자: &, |, ^, ~, <<, >>
- AND: 101 & 100 == 100
- OR: 101 | 100 == 101
- XOR: 101 ^ 100 == 001
- NOT: ~101 == 010
- SHIFT: 101 << 1 == 1010, 101 >> 2 001
- 연산자 우선순위
우선순위 | 연산자 | 설명 | 결합방향 |
---|---|---|---|
1 | :: |
Scope resolution | 좌 → 우 |
2 | ++ -- |
후위 증가와 감소 | |
() |
함수호출 | ||
[] |
배열 첨자 | ||
. |
참조로 요소 선택 | ||
-> |
포인터를 통해 요소 선택 | ||
3 | ++ -- |
전위 증가와 감소 | 우 → 좌 |
+ − |
단항 부호 연산자 | ||
! ~ |
논리 NOT, 비트단위 NOT | ||
(type) |
타입 캐스트 | ||
* |
역참조 | ||
& |
주소값 | ||
sizeof |
Size-of 연산자 | ||
new , new[] |
동적 메모리 할당 | ||
delete , delete[] |
동적 메모리 해제 | ||
4 | .* ->* |
멤버 포인터 접근 | 좌 → 우 |
5 | * / % |
곱셈, 나눗셈, 나머지 | |
6 | + − |
더하기, 빼기 | |
7 | << >> |
비트 왼쪽 쉬프트와 오른쪽 쉬프트 | |
8 | < <= |
관계 연산자 < 와 ≤ | |
> >= |
관계 연산자 > 와 ≥ | ||
9 | == != |
관계 = 와 ≠ | |
10 | & |
비트 AND | |
11 | ^ |
비트 XOR (exclusive or) | |
12 | | |
비트 OR (inclusive or) | |
13 | && |
논리 AND | |
14 | || |
논리 OR | |
15 | ?: |
조건 연산자 (삼항 연산자) | 우 → 좌 |
= |
직접 할당 (C++ 클래스를 위해 기본 제공) | ||
+= −= |
합과 차 할당 | ||
*= /= %= |
곱, 몫, 나머지 할당 | ||
<<= >>= |
비트 왼쪽 쉬프트와 오른쪽 쉬프트 후 할당 | ||
&= ^= |= |
비트연산 AND, XOR, OR 연산 후 할당 | ||
16 | throw |
(예외를 위한)Throw 연산자 | |
17 | , |
콤마 | 좌 → 우 |
입출력
- 출력 printf(" Hello world %6.3f", 123.12345f);
- 입력
자료형 | 입력 포맷 |
---|---|
char ch; |
scanf("%c",&ch); |
short sh; |
scanf("%hd",&sh); |
int i; |
scanf("%d",&i); |
long lo; |
scanf("%ld",&lo); |
float fl; |
scanf("%f",&fl); |
double du; |
scanf("%lf",&du); |
- ASCII code & Unicode
반응형
'CSE > C \ C++' 카테고리의 다른 글
[VSCode] Macbook에서 C/C++ 개발환경 구축하기 (10) | 2020.03.10 |
---|