JUST DO IT PROJECT

C 언어 강좌 기초 요약: 기수법, 메모리, 변수, 입출력 본문

CSE/C \ C++

C 언어 강좌 기초 요약: 기수법, 메모리, 변수, 입출력

웨일.K 2020. 3. 5. 02:01
반응형

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