안녕하세요?허니입니다. 오늘은 [C 언어 매크로와 전처리기]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


22장. 매크로와 전처리기.pptx
0.41MB



C 언어란?
매크로와 전처리기
22.1.  전처리기에 의한 매크로 처리
• 전처리기에 의한 전처리
• #define으로 시작하는 전처리기 지시자
 컴파일러에 의해 처리되는 것이 아니다.
 전처리기에게 단순 치환 작업을 요청할 때 사용되는 지시자
22.2.  매크로를 이용한 함수의 구현
• 매크로 함수란?
 매크로를 기반으로 정의되는 함수
 함수가 아니라 매크로다! 다만 함수의 특성을 지닐 뿐이다. 
• 매크로 함수의 장점
 자료형에 독립적이다.
 실행 속도가 향상된다.
• 매크로 함수의 단점
 구현이 어렵다. 
 디버깅이 어렵다.
• 매크로 함수가 되기 위한 조건
 함수의 크기가 작아야 한다.
 그렇지 않을 경우 실행 파일의 크기가 커지게 된다. 
• #을 이용한 전달 인자의 문자열화
• add.c의 해결을 위한 두 가지 특성
• add.c의 문제점 해결
• ##을 이용한 토큰의 결합

안녕하세요?허니입니다. 오늘은 [C 언어 메모리 관리와 동적 할당]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


20장. 파일 입출력.pptx
0.49MB



C 언어란?
메모리 관리와 동적 할당
21.1.  C 언어의 메모리 구조
• 스택, 힙 그리고 데이터 영역
 프로그램의 실행을 위해 기본적으로 할당하는 메모리 공간
 컴파일 타임에 함수에서 요구하는 스택의 크기 결정 되어야 함
• 배열의 선언
 배열의 길이 선언은 상수!
 컴파일 타임에 요구되는 메모리 공간의 크기를 결정지어야 하므로
21.2.  메모리 동적 할당
• 메모리 동적 할당
 런 타임에 메모리 공간의 크기를 결정지어서 할당(힙 영역에 할당)
• 동적 할당된 메모리 공간의 소멸
• malloc 함수의 활용

안녕하세요?허니입니다. 오늘은 [C 언어 파일 입출력]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


19장. 구조체와 사용자 정의 자료형 2.pptx
0.68MB



C 언어란?
파일 입출력
20.1.  파일의 개방(Open)과 종결(Close)
• 파일의 개방
 데이터를 주고 받을 수 있는 스트림의 생성
• 파일 개방 모드
 파일 접근 모드 + 데이터 입출력 모드
• 파일 접근 모드
 개방한 파일의 사용 용도를 결정
 r,  w,  a,  r+,  w+,  a+
• 데이터 입출력 모드
• CR & LF
 CR은 특수문자 '\r'로 표시
 LF는 특수문자 '\n'로 표시
• 텍스트 모드와 2진 모드의 차이점
• 파일 개방 모드의 완성
• FILE 구조체의 포인터
 fopen 함수의 리턴 타입
 흔히 파일 포인터라 불린다.
 개방한 파일에 대한 여러 가지 정보를 지니는 변수를 가리키는 포인터
• FILE 구조체 포인터의 용도
 데이터 입출력 함수의 호출
 위치 정보의 참조
 파일의 끝 확인
• 파일의 종결(CLOSE)
 스트림의 종결을 의미함
20.2.  파일 입출력 함수
• 파일 위치 지시자
 FILE 구조체 변수의 멤버로서 존재
 READ & WRITE에 대한 위치 정보가 된다.
 입출력 함수의 호출에 의해 이동
 순차적인 입력 및 출력이 가능한 이유
20.3.  파일의 끝을 확인!!
• 리턴 값 참조에 의한 구분
• feof 함수를 사용하는 방법
 FILE 구조체 변수를 참조하는 방법
24-4  Random Access 파일 입출력 함수
• Random Access
 특정 위치 임의 접근 방식의 입출력
• fseek 함수의 사용 예

안녕하세요?허니입니다. 오늘은 [구조체와 사용자 정의 자료형 2 ]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


19장. 구조체와 사용자 정의 자료형 2.pptx
0.68MB



C 언어란?
구조체와 사용자 정의 자료형 2
19.1.  구조체 변수의 전달과 리턴
• 함수의 인자로 전달되는 구조체 변수
 구조체 변수의 인자 전달 방식은 기본 자료형 변수의 인자 전달 방식과 동일
• 구조체 변수의 연산
 허용되는 대표적인 연산은 대입 연산(=)이며, 이외의 사칙 연산들은 적용 불가능
• 구조체 변수의 리턴 방식
 기본 자료형 변수의 리턴 방식과 동일
19.2.  구조체의 유용함
• 잘 구현된 프로그램은 처리되어야 할 데이터의 부류가 적절히 나뉘어진다.
• 부류를 적절히 나누면 데이터를 처리하는 과정이 수월해진다. 
19.3.  구조체를 포함하는 구조체
• 중첩된 구조체
 구조체의 멤버로 구조체 변수가 오는 경우
• 중첩된 구조체 변수의 초기화 방식
• 중첩된 구조체 변수의 초기화 방식
19.4.  새로운 자료형의 완성
• typedef 키워드의 이해
• typedef의 적용
• 구조체 이름의 생략
19.5.  공용체
• 공용체의 특성
 하나의 메모리 공간을 둘 이상의 변수가 공유하는 형태
19.6.  열거형
• 열거형의 정의와 의미
• 할당되는 상수의 값
• 열거형을 사용하는 이유
 특정 정수 값에 의미를 부여할 수 있다. 
 따라서 프로그램의 가독성을 높이는데 한몫을 한다.

안녕하세요?허니입니다. 오늘은 [구조체와 사용자 정의 자료형 1]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


18장. 구조체와 사용자 정의 자료형1.pptx
0.51MB



C 언어란?
구조체와 사용자 정의 자료형 1
18.1.  구조체란 무엇인가?
• 구조체의 정의
 하나 이상의 기본 자료형을 기반으로 사용자 정의 자료형을 만들 수 있는 문법 요소
• 구조체 변수의 선언: case 1
• 구조체 변수의 선언: case 2
• 구조체 변수의 접근
• 구조체 변수의 초기화
 배열 초기화 문법과 일치
18.2.  구조체와 배열 그리고 포인터
• 구조체 배열의 선언
• 구조체 배열 요소의 접근
 TelPhone2.c 참조
• 구조체 배열의 초기화
• 구조체와 포인터
 첫째 : 구조체 포인터를 선언하여 구조체 변수를 가리키는 경우
 둘째 : 구조체의 멤버로 포인터 변수가 선언되는 경우
• 구조체 변수와 주소 값의 관계

안녕하세요?허니입니다. 오늘은 [문자와 문자열 처리 함수]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


17장. 문자와 문자열 처리 함수.pptx
0.39MB



C 언어란?
문자와 문자열 처리 함수
17.1.  스트림과 데이터의 전송
• 입출력의 이해
 파일, 콘솔, 소켓 입출력
• 스트림에 대한 이해
 데이터를 송수신 하기 위한 일종의 다리
• 표준 입출력 스트림
 프로그램 실행 시 자동으로 생성 및 소멸
 모니터와 키보드를 그 대상으로 함
17.2.  문자 단위 입출력 함수
• 문자 출력 함수
• 문자 입력 함수
• EOF에 대한 이해
 fgetc, getchar 함수가 파일의 끝에 도달하는 경우 반환
 End-Of-File의 약자로서, 파일의 끝을 표현하기 위한 상수 (-1의 값을 지닌다)
 콘솔의 경우 Ctrl-Z가 파일의 EOF를 의미
• 문자 단위 입 출력 함수의 필요성
 용도에 맞는 적절한 함수를 제공함으로써 성능 향상을 도모
17.3.  문자열 단위 입출력 함수
• 문자열 출력 함수
• 문자열 입력 함수
17.4.  표준 입출력과 버퍼(Buffer)
• 입출력 사이에 존재하는 버퍼의 이해
 여분의 임시 메모리적 특징을 지닌다.
 성능 향상이 목적이다.
 모아서 보내고, 모아서 받고...
• 버퍼를 비우는 작업을 하는 fflush 함수
• fflush 함수의 필요성
17.5.  문자열 조작 함수
• 문자열의 길이를 반환하는 strlen 함수
• 문자열을 복사하는 함수
• 문자열을 추가하는 함수
• 문자열을 비교하는 함수
• 문자열을 숫자로 변환하는 함수들
• 대소문자의 변환을 처리하는 함수들

안녕하세요?허니입니다. 오늘은 [함수 포인터와 void 포인터]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


16장. 함수 포인터와 void 포인터.pptx
0.32MB



C 언어란?
함수 포인터와 void 포인터
16.1.  함수 포인터
• 함수 포인터의 이해
• 함수 이름의 포인터 타입을 결정짓는 요소
 리턴 타입 + 매개 변수 타입
16.2.  void형 포인터
• void형 포인터란 무엇인가?
 자료형에 대한 정보가 제외된, 주소 정보를 담을 수 있는 형태의 변수
 포인터 연산, 메모리 참조와 관련된 일에 활용 할 수 없다. 
16.3.  main 함수의 인자 전달

안녕하세요?허니입니다. 오늘은 [다차원 배열 그리고 포인터]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


15장. 다차원 배열 그리고 포인터.pptx
0.62MB


 




C 언어란?
15장. 다차원 배열 그리고 포인터
15.1.  2차원 배열 이름의 포인터 타입
• 1차원 배열 이름의 포인터 타입 결정 포인트!
 포인터가 가리키는 요소의 자료형
 포인터 연산 시 증가하는 바이트의 크기
• 1차원 배열 이름
 배열 이름이 가리키는 요소의 자료형이 일치 한다면, 포인터 연산 시 증가하는 값의 크기도 일치.
 따라서 1차원 배열 이름의 경우 가리키는 요소만 참조.
• 다차원 배열의 포인터 타입 결정 포인트!
 포인터가 가리키는 요소의 자료형
 포인터 연산 시 증가하는 바이트의 크기
• 2차원 배열 이름
 포인터가 가리키는 요소의 자료형이 같다 해도 포인터 연산 시 증가하는  값의 크기 불일치!
 포인터 연산 결과도 생각해 봐야 함
• 2차원 배열 이름의 특성 이해(1단계)
• 2차원 배열 이름의 특성 이해(2단계)
• 2차원 배열 이름의 특성 이해(결론1)
• 2차원 배열 이름의 특성 이해(결론2)
 2차원 배열 이상의 포인터 타입 구성
– 가리키는 대상의 자료형
– 포인터 연산 시 증가하는 바이트의 크기
• 2차원 배열 이름에 일치하는 포인터 선언
• 매개 변수로 선언되는 포인터의 또 다른 표현
• int (*pArr)[4] 과 int* pArr[4]의 차이점
15.2. 2차원 배열에서의 arr[i]  와 *(arr+i)
• 다양한 형태의 배열 요소 접근 방법

안녕하세요?허니입니다. 오늘은 [C 언어에서 가끔 *이 여러개 있는 것을 볼수 있는데 이게 포인터의 포인터, 즉 더블포인터, 트리플 포인터라고 합니다. 이것]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


14장. 포인터의 포인터.pptx
0.41MB



C 언어란?
포인터의 포인터


14.1.  포인터의 포인터
• 포인터의 포인터
 더블 포인터라고 불린다.
 싱글 포인터의 주소 값을 저장하는 용도의 포인터
• 더블 포인터의 의한 Call-By-Reference
 다음 그림이 제시하는 프로그램의 구성을 통한 이해
• 구현 사례 1 : 효과 없는 swap 함수의 호출
• 구현 사례 2 : 더블 포인터 입장에서의  swap
• 포인터 배열과 포인터 타입
 1차원 배열의 경우 배열이름이 가리키는 대상을 통해서 타입이 결정된다.
 포인터 배열이라고 하더라도 마찬가지!


14.2.  포인터의 필요성
• 지금까지…
 swap 함수와 같이 함수 내에서 데이터의 조작을 하기 위해서…
• 앞으로…
 메모리 동적 할당
 자료구조의 구현

'Past Material' 카테고리의 다른 글

C언어 함수 포인터와 void 포인터  (0) 2019.07.28
C 언어 다차원 배열 그리고 포인터  (0) 2019.07.28
C 언어 다차원 배열  (0) 2019.05.17
C 언어 포인터와 함수  (0) 2019.05.17
C 언어 포인터와 배열  (0) 2019.05.16

안녕하세요?허니입니다. 오늘은 [C 언어의 다차원 배열]에 대해 포스팅하려고 합니다. 공부하시는 모든 학생과 연구원분들에게 많은 도움이 되었으면 좋겠다고 생각하며 언제든지 질문은 환영입니다.


13장. 다차원 배열.pptx
0.65MB



C 언어란?
다차원 배열
13.1.  다차원 배열
• 다차원 배열이란 무엇인가?
 2차원 이상의 배열을 의미함
• 다차원 배열의 선언
• 2차원 배열의 선언
 2차원적 메모리 구조를 구성
• 2차원 배열 요소의 접근 방법
• 다차원 배열의 실제 메모리 구성
 1차원 배열과 동일하다. 다만 접근 방법을 2차원적으로 해석할 뿐이다.
 2차원적으로 이해하는 것이 좋은 습관!
• 2차원 배열! 선언과 동시에 초기화
 case 1 : 행 단위로 모든 요소들을 초기화
 case 2 : 행 단위로 일부 요소들만 초기화
• 2차원 배열! 선언과 동시에 초기화
 case 3 : 1차원 배열 형태의 초기화
• 초기화 리스트에 의한 배열 크기의 결정
 1차원 배열의 예
– int arr[]={1, 2, 3, 4, 5};
 2차원 배열의 예
– int arr[][]={1, 2, 3, 4, 5, 6, 7, 8};      //Error!
– int arr[][4]={1, 2, 3, 4, 5, 6, 7, 8};    //OK!
– int arr[][2]={1, 2, 3, 4, 5, 6, 7, 8};    //OK!


13.2.  3차원! 그 이상의 배열
• 3차원 배열의 선언과 의미
 3차원적 메모리 구조를 의미함
 개념만 이해하면 충분, 일반적으로 필요 없다.
 4차원 이상의 배열은 4차원의 형태가 되므로 구조적인 이해 불가!! 

+ Recent posts