반응형
- 자바 -> C 언어 넘어가는 과정에서 기본 베이직 복습 / 포인터 등 이해 빠르도록 초반부터 정리합니다.
- 가독성은 라이 님 블로그가 최고니까 거기에서 보시는 걸 추천.
https://m.blog.naver.com/kks227/60196220931
왜 c인가?
거의 대부분의 언어의 기본 문법(변수, 대입, 조건문, 반복문 등)이 C언어와 비슷
C언어가 고급 언어 중에서도 저급 언어와 흡사하여 컴퓨터 구조도 어느 정도 함께 배우게 되는 장점
언어의 종류
- 저급 언어: 컴퓨터가 이해하기 쉬운 언어. 기계어, 어셈블리어 등이 있다.
- 고급 언어: 컴퓨터보다는 우리가 이해하기 쉬운 언어. C언어, JAVA 등이 있다.
- 기계어: 컴퓨터가 알아들을 수 있는 말. 0과 1로만 이루어진 그 유명한 언어가 기계어이다.
- 기계어는 컴퓨터마다 세세한 문법이 다르다. 그러나 기본적인 베이직 문법은 같다.
- 어셈블리어: 기계어를 기호화하여 그나마 사람이 좀 알아볼 수 있게 만든 형태의 언어.
- 실제로 어셈블리어와 기계어의 흐름은 완전히 똑같다.
- 자연어: 사람이 알아들을 수 있는 말.
※ [컴퓨터 - 기계어 - 어셈블리어 - 고급 언어 - 자연어 - 사람] 과 같은 순서로 컴퓨터, 사람에게 친숙하다고 할 수 있다.
고급 언어의 분류 : 컴파일러 - 어셈블리어
- 컴파일러: 문서(코드)를 일단 작성한 후 그 문서를 통째로 번역하여 실행
- 어셈블리어: 코드를 작성할 때 한 줄 한 줄 컴퓨터가 실행하는 방식
C의 언어적 특징
- 절차적 언어: 프로그램이 반드시 윗줄부터 시작하여 순서대로 실행됨을 의미
- #include <stdio.h>: 헤더, 유용한 요소들을 import해 오는 역할 (.h 확장자)
- 함수(){구문}
변수
- 정수형(Integer), 실수형(Real), 문자형(Character) 등 여러 가지가 존재
- 문자형 (Char)은 반각문자 하나 저장 가능
- 반각문자: ~~체 폰트에서 한 칸을 차지하는 문자. 한 글자당 크기가 1byte
- 전각문자: ~~체 폰트에서 두 칸을 차지하는 문자. 한 글자당 크기가 2byte
- 변수 선언 / 초기값 선언 (초기화, initialize)
- int a; / int a = 3;
형식 지정자
- %d 정수형
- %f 실수형
- %c 문자형
- %s 문자열형
- %u 부호가 없는 정수형
- %o 8진수 정수형
- %x 16진수 정수형
- %X 16진수 정수형, 단 알파벳을 대문자로 출력
- printf("%d + %d = %d\n", 2, 3, 2+3);
- 2 + 3 = 5
- %를 출력하기 위해서는 %% 입력이 필수
변수 선언
- int a, b; : 초기화가 필요한 int a와 b
- int a=2, b; a는 2로 초기화, b는 초기화 X
형식 지정자
- int num=5.5를 %d / %f로 출력했을 때: 5 / 5.50000
- num은 실수인데 정수 값으로 출력 가능? - 자동 형 변환
- 0.5는 어디로 갔지? - truncated
- 그러나, printf 등 함수 안에서 나오는 값은 얄짤없이 대부분 에러 뜬다. 형식 지정자 맞춰 주기.
옵션 추가
- 정수형
- %2d : 2자리 확보
- %02d / %.2d : 2자리 확보, 나머지 한 자리에 0 / 나머지 자리에 0
- %4.2d: 4자리 확보 / 두 자리의 나머지 자리에 0
- %-2d: 2자리 확보, 값은 왼쪽 정렬
- 실수형
- %.1f : 2번째 자리에서 반올림
- %6.1f : 6자리 확보, 2번째 자리에서 반올림
- %-6.0f : 6자리 확보, 1번째 자리에서 반올림, 왼쪽 정렬
연산과 연산자
- 대입 연산자
- int a = 3
- 산술 연산자
- + - * / %
- 정수형/정수형 = 정수형
- 3/2 = 1
- 만약 실수 값이 나오게 하고 싶다면 하나를 실수로 선언해 주든가 / 형 변환을 하든가 / 1.0*(m+n) 식으로 실수로 만들어 버리든가
자료형의 크기
- sizeof : 그 자료형이 몇 byte인지 알 수 있음
- short: 2byte
- int: 4byte
- long: 4byte
- float: 4byte
- double: 8byte
- char: 1byte
- overflow 유의
변수 이름 규칙
- 영문자, 숫자, _(특수문자 언더바)만 사용 가능
- 대소문자를 구분
- 이름의 첫 번째 글자는 숫자 ㄴㄴ
- 예약어 ㄴㄴ
- 같은 이름의 변수는 2번 이상 ㄴㄴ
printf() / scanf()
- printf() : 출력하는 함수
- scanf() : 입력받는 함수
- &n - 메모리 주소
매크로
- 한번 선언하고 나서 계속 쓸 수가 있는 어떤 값이나 함수
- #define APPLE_PER_BOX 30
- #define F2 1.5f
- #define AREA WIDTH*HEIGHT
- #define 3+7 : 식이 그대로 들어가버린다는 점에 유의
반응형
'자린고비 독학하기 > 자린고비 코딩하기' 카테고리의 다른 글
C언어 basic - 23~38 (0) | 2019.08.29 |
---|---|
C언어 basic - 11~22 (0) | 2019.08.29 |
Android Studio - 진동, 효과음 / Snack Bar (0) | 2019.08.28 |
Android Studio - Viewpager (0) | 2019.08.28 |
Android Studio - FrameLayout (0) | 2019.08.22 |