일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- shell_script
- C++ 언어 #핵심정리
- C언어 # 부록
- Bandit
- C++ 언어 # 핵심정리
- C언어 # 핵심 정리
- Hacking #Baic
- C언어 #핵심정리
- C언어 #부록
- C++ 언어 # 핵심 정리
- HTML #핵심정리
- PHP #핵심정리
- MySQL #핵심정리
- Today
- Total
cCcode
C Language [핵심정리] - 1 본문
C언어를 정리하기 전 C언어가 무엇인지에 대해 간단히 설명하고 시작할게요.
C언어는 무엇일까요..?
C언어는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 유닉스(Unix) 운영체제를 만들기 위해 고안한 프로그래밍 언어에요. 처음에 켄 톰슨이 BCPL언어를 용도에 맞게 고쳐서 B언어(벨 연구소의 첫 글자 B를 가져왔다고 하네요.)를 개발했습니다. 그 후 데니스 리치가 B언어를 개선하며 지금의 C언어가 탄생하게 된거죠.
C언어는 이후에 개발 된 프로그래밍 언어들에도 직간접적인 영향을 주었는데 덕분에 C언어를 배우면 다른 언어들을 배울 때 큰 어려움 없이 배울 수 있는거랍니다. 하지만 프로그래밍을 처음 하시는 분들은 C언어를 힘들어하시더라고요. (물론 저도 그랬고요) 그래서 이 블로그를 보며 뉴비분들도 저와 함께 성장하셨으면 좋겠습니다.
이제 설명 시작할게요.
1. 변수 선언하기
변수를 선언할 때는 변수명을 원하는대로 지어도 되지만 다음과 같은 규칙을 지켜야 할 필요가 있어요.
1) 영문 문자와 숫자를 사용할 수 있습니다.
2) 대소문자를 구분합니다.
3) 문자부터 시작해야하며 숫자부터 시작할 수 없습니다.
4) _(under bar)로 시작할 수 있습니다.
5) C언어의 키워드(int, short, long, void 등)는 사용할 수 없습니다.
2. 정수 자료형 사용하기
정수 자료형은 크게 char, int가 있으며 앞에 부호(+, -)키워드(singed, unsigned)와 크기(short, long)를 사용해 해당 특성을 가지고 있는 정수 자료형을 정의할 수 있어요.
→ signed : 부호 있는 정수를 표현합니다. 보통은 signed 키워드를 생략합니다.
→ unsigned : 부호 없는 정수를 표현합니다. 그래서 값은 0부터 시작합니다.
제가 하나의 예시 코드와 결과를 보여드릴게요.
여기서 이상한 점 못 느끼셨나요..?
어라.. 분명히 unsigned 키워드로 할당한 변수는 양수 범위의 값만 저장할 수 있다고 했는데 음수 값도 출력이 됩니다. 왜 그런걸까요? 그 이유는 출력함수인 printf에서 10진수로 변환하는 서식지정자 %d를 사용했기 때문입니다. 따라서 unsigned 키워드로 할당한 변수(즉, 음수를 제외한 범위의 크기를 저장할 수 있는 공간)를 출력하려면 그에 맞는 서식지정자를 지정해줘야 합니다.
그게 바로 %u(unsigned[부호없는] decimal[10진수]) 서식지정자입니다.
이처럼 동일한 조건에서 서식지정자만 바꾸면 예상된 결과가 나옵니다.
그외에 정수형 서식지정자들은 아래와 같습니다.
3. 오버 플로우와 언더 플로우 알아보기
위에 코드 결과로 [4294967285] 라는 값이 나왔습니다. 그 이유는 자료형에서 저장할 수 있는 범위보다 작아지면서 언 더 플로우(under flow)가 발생하여, 그로 인해 unsigned int의 최댓값이 출력되었기 때문입니다.
즉, 오버 플로우는 각 자료형 마다 저장할 수 있는 범위의 최댓값을 넘어서면 최솟값부터 다시 시작해 값이 커지는 것을 말하고 언더 플로우는 각 자료형 마다 저장할 수 있는 범위의 최솟값보다 작아지면 최댓값부터 다시 시작해 값이 작아지는 것을 말합니다.
+ 추가 개념
1) scanf()
- 입력함수로서 사용자의 입력값을 받습니다.
ex) int input;
scanf("%d", &input);
2) printf()
- 출력함수로서 지정된 값을 화면에 출력합니다.
ex) printf("Hello C Programming");
3) #include
- 파일 처리를 위한 전처리문이며 헤더 파일을 포함시킬 때 사용합니다.
* 전처리기는 컴파일 되기전 미리 처리하는 문장을 말하고, 헤더파일을 .h 확장자를 가진 파일을 말합니다.
ex) #include <stdio.h> : Standard(표준) Input(입)/Output(출력) header 파일을 포함한다는 의미이며,
<stdio.h> 파일 안에는 scanf 나 printf 와 같이 입력과 출력에 관련된 함수들이 정의되어 있습니다.
4) return 0;
- 종료 코드로 운영체제에 0을 반환합니다. 일반적으로 정상적인 종료일 때 0을, 비정상적인 종료일 때 0이 아닌 수를 반환합니다.
5) \n
- 출력 시 줄바꿈(한 줄)을 해준다는 의미입니다. 즉, 엔터(Enter)의 기능을 한다고 볼 수 있죠.
6) /* */ or //
- 주석(comment)이라고 하며, 컴파일러가 처리하지 않아 프로그램의 실행에는 영향을 주지 않습니다.
'C Language Basic' 카테고리의 다른 글
C Language [핵심정리] - 6 (0) | 2021.05.10 |
---|---|
C Language [핵심정리] - 5 (0) | 2021.05.09 |
C Language [핵심정리] - 4 (0) | 2021.05.08 |
C Language [핵심정리] - 3 (0) | 2021.05.07 |
C Language [핵심정리] - 2 (0) | 2021.05.06 |