안녕하세요. 파일의 C언어 강의에 오신 여러분 환영합니다 ^^
프로그래밍을 공부하시려고 하신 분들이라면 'C 언어'라는 언어가 기초고 먼저 배우라는 말을 매우 많이
들어보셨을 겁니다. 근데 왜 C언어를 먼저 배워야 할까요??
내가 원하는 프로그램을 만들려면 꼭 C언어를 배워야 하는 건가요?
다른 언어를 먼저 시작해도 상관없지 않을까요?
정답은 네입니다. 실제로 저는 C언어가 아닌 비주얼 베이식으로 프로그래밍을 시작했습니다.
C언어 앞부분을 조금 배우다가 딱딱한 콘솔 창이 너무 재미가 없어서 제가 만들고 싶은 프로그램을 WindowForm으로
만들기 시작했습니다.
이렇게 시각적으로 제작을 하니 프로그래밍이 훨씬 더 재미있고 흥미가 생겼습니다.
그럼 다시 'C언어를 왜 배우나요'라는 질문이 생깁니다.
C언어를 배우라고 하는 이유는 우선 C언어가 많은 프로그래밍 언어의 기초가 되기 때문입니다.
C언어가 그만큼 많이 이용되었다고 해석할 수도 있습니다. 실제로 C언어는 세계에서 가장 많이 쓰이고 있습니다.
그럼 C언어를 왜 가장 많이 쓸까요?
C언어의 장점은 빠른 처리속도에 있습니다
C언어는 고급언어에 속하면서 상대적으로 로우 레벨(low-level)에 속하는 언어입니다.
조금 더 기계어에 가깝고 프로그래밍하기 어렵습니다. * 물론 상대적인 개념입니다
(보통 기계어에 가까우면 로우 레벨, 인간의 언어에 가까우면 하이 레벨이라고 하는데 이 부분은 지금 꼭 알 필요는 없습니다. 모르시면 넘어가도 좋습니다.)
그렇기 때문에 다른 고생산성 언어(파이썬, C#과 같은 언어)에 비해 속도는 더 빠릅니다.
하지만 단점도 많습니다.
파이썬이라는 프로그래밍 언어에서는 몇십 줄이면 해결될 것을 C언어에서는 몇백 줄을 작성해야 하는 경우도 있죠.
조금 고지식한 면도 불편함을 느끼는 점도 많을 겁니다.
그리고 도스창.. 검은창에서 출력이나 하고있으면 솔직히 재미는 없습니다.
하지만 C언어는 아까도 말했듯이 많은 프로그래밍 언어의 베이스가 되기 때문에 꼭 배워두는것을 권장합니다. (C언어 이후 나온 많은 언어들이 C언어의 영향을 크게 받았습니다.)
또한 도스창에서 구동하기 때문에 잡다한 요소(그래픽적 요소)가 배제되고, 컴퓨터의 메모리에 직접 접근이 가능한 프로그래밍 언어기 때문에 평소에 생각하지 않았던 메모리의 생성, 프로그램의 구조 등 프로그램의 본질적 요소를 다시금 생각하는 기회를 줍니다.
C언어의 학습은 프로그래밍의 심도를 높이기 위해서 거쳐가는 관문입니다.
제 강의의 모토는 쉽게 배우지만 원리는 전부 알아가는 강의 입니다.
그렇기에 소스코드 한줄 한줄 대충 설명하지 않을 것을 약속드립니다.
강의를 읽다가 부족함을 느끼시면 뒤로가기를 누르시고 필요한 부분을 구글로 검색해보세요.
C언어는 가장 많이 쓰이는 언어인 만큼 다른 분들이 작성한 좋은 자료들이 굉장히 많습니다.
차근차근 C언어를 배워봅시다! 시작 ^^
* 이 글에는 제 주관적 생각이 담겨있습니다.
! 본 강의는 저자 박정민님의 열혈강의 C언어 본색에 영감을 받아 만들어졌습니다.
! 본 강의는 열혈강의 C언어 본색의 책 내용을 작성자 나름대로 재구성한 강의입니다.
C언어 강의 목차
[C언어 강좌] #0 시작에 앞서 C언어를 왜 배우는가?[C언어 강좌] #1 개발환경 구축하기
[C언어 강좌] #2-1 printf 로 마음대로 출력하기
[C언어 강좌] #2-2 printf 로 마음대로 출력하기
[C언어 강좌] #3 변수(variable)
[C언어 강좌] #4-1 scanf로 입력받기
[C언어 강좌] #4-2 scanf와 printf에서 %f, %lf의 차이점
[C언어 강좌] #5-1 상수 이용하기(Constant)
[C언어 강좌] #5-2 [2진수 변환, 1의보수, 2의보수 원리 설명]
[C언어 강좌] #6-1 연산자(Operator)
[C언어 강좌] #6-2 연산자(Operator)
[C언어 강좌] #7-1 자료형(Data Type)
[C언어 강좌] #7-2 자료형(Data Type)
[C언어 강좌] #8 반복문(For, While, Do~While, 무한루프, 중첩)
[C언어 강좌] #9 조건문 (If, ElseIf, Switch)
[C언어 강좌] #10 함수(Function)
[C언어 강좌] #11 정적변수, 지역변수, 전역변수, 외부변수, 레지스터 변수
[C언어 강좌] #12-1 [Array] 1차원 배열
[C언어 강좌] #12-2 [Array] 다차원 배열
[C언어 강좌] #13-1 포인터(Pointer)
[C언어 강좌] #13-2 포인터(Pointer)
[C언어 강좌] #13-3 포인터(Pointer)
[C언어 강좌] #14-1 구조체(Structure Type)
[C언어 강좌] #14-2 구조체(Structure Type)
[C언어 강좌] #15 공용체와 열거형
[C언어 강좌] #16-1 문자열 표준 함수와 기타 표준 함수
[C언어 강좌] #16-2 문자열 표준 함수와 기타 표준 함수
[C언어 강좌] #17-1 콘솔 입출력과 파일 입출력
[C언어 강좌] #17-2 콘솔 입출력과 파일 입출력
[C언어 강좌] #17-3 콘솔 입출력과 파일 입출력
[C언어 강좌] #18 동적 메모리 할당과 가변 인자
[C언어 강좌] #19-1 전처리기와 분할 컴파일
[C언어 강좌] #19-2 전처리기와 분할 컴파일
[C언어 강좌] #20 강의를 마치며 ~ (완)
'프로그래밍 강좌 > C' 카테고리의 다른 글
[C언어 강좌] #4-1 scanf로 입력받기 (0) | 2019.11.08 |
---|---|
[C언어 강좌] #3 변수(variable) (0) | 2019.11.02 |
[C언어 강좌] #2-2 printf 로 마음대로 출력하기 (0) | 2019.11.01 |
[C언어 강좌] #2-1 printf 로 마음대로 출력하기 (0) | 2019.10.31 |
[C언어 강좌] #1 개발환경 구축하기 (0) | 2019.10.29 |