안녕하세요?허니입니다. 오늘은 [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차원의 형태가 되므로 구조적인 이해 불가!! 

안녕하세요?허니입니다. 오늘은 [C 언어의 포인터와 함수의 관계]에 대해 포스팅하려고 합니다.


12장. 포인터와 함수에 대한 이해.pptx
0.49MB




C 언어란?
포인터와 함수

12.1.  함수의 인자로 배열 전달하기
• 기본적인 인자의 전달 방식
 값의 복사에 의한 전달
• 배열의 함수 인자 전달 방식
 배열 이름(배열 주소, 포인터)에 의한 전달
• 배열 이름, 포인터의 sizeof 연산
 배열 이름 : 배열 전체 크기를 바이트 단위로 반환
 포인터 : 포인터의 크기(4)를 바이트 단위로 반환
• "int * pArr" vs. "int pArr[ ]"
 둘 다 같은 의미를 지닌다.
 선언 "int pArr[ ]"은 함수의 매개 변수 선언 시에만 사용 가능

12.2.  Call-By-Value와 Call-By-Reference
• Call-By-Value
 값의 복사에 의한 함수의 호출
 가장 일반적인 함수 호출 형태
• Call-By-Value에 의한 swap
• Call-By-Reference
 참조(참조를 가능케 하는 주소 값)를 인자로 전달하는 형태의 함수 호출 
• Call-By-Reference에 의한 swap
• scanf 함수 호출 시 &를 붙이는 이유
 case 1
 case 2


12.3. 포인터와 const 키워드
• 포인터가 가리키는 변수의 상수화
• 포인터 상수화
• const 키워드를 사용하는 이유
 컴파일 시 잘못된 연산에 대한 에러 메시지
 프로그램을 안정적으로 구성

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

C 언어 포인터의 포인터(더블포인터, 트리플 포인터???)  (0) 2019.05.18
C 언어 다차원 배열  (0) 2019.05.17
C 언어 포인터와 배열  (0) 2019.05.16
C 언어 포인터  (0) 2019.05.16
C 언어 1차원 배열  (0) 2019.05.15

안녕하세요? 허니입니다. 오늘은 C 언어의 포인터와 배열의 관계에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


11장. 포인터와 배열! 함께 이해하기.pptx
0.53MB



 

C 언어란?
포인터와 배열


11.1.  포인터와 배열의 관계
• 배열의 이름의 정체
 배열 이름은 첫 번째 요소의 주소 값을 나타낸다. 
• 배열 이름과 포인터 비교
• 배열 이름의 타입
 배열 이름도 포인터이므로 타입이 존재
 배열 이름이 가리키는 배열 요소에 의해 결정
• 배열 이름의 활용
 배열 이름을 포인터처럼, 포인터를 배열 이름처럼 활용하는 것이 가능!


11.2.  포인터 연산
• 포인터 연산이란?
 포인터가 지니는 값을 증가 혹은 감소시키는 연산을 의미
• 포인터 연산
 포인터가 가리키는 대상의 자료형에 따라서 증가 및 감소되는 값이 차이를 지님
• 포인터 연산을 통한 배열 요소의 접근
• 포인터와 배열을 통해서 얻을 수 있는 중대한 결론


11.3.  문자열 상수를 가리키는 포인터
• 문자열 표현 방식의 이해
 배열 기반의 문자열 변수
 포인터 기반의 문자열 상수

11.4.  포인터 배열
• 포인터 배열
 배열의 요소로 포인터를 지니는 배열
• 포인터 배열 예제 1
• 포인터 배열 예제 2

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

C 언어 다차원 배열  (0) 2019.05.17
C 언어 포인터와 함수  (0) 2019.05.17
C 언어 포인터  (0) 2019.05.16
C 언어 1차원 배열  (0) 2019.05.15
C 언어 함수와 변수  (0) 2019.05.15

안녕하세요? 허니입니다. 오늘은 C 언어의 포인터에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


10장. C 언어 포인터.pptx
0.36MB



C 언어란?
포인터


10.1.  포인터란 무엇인가?
• 포인터와 포인터 변수
 메모리의 주소 값을 저장하기 위한 변수
 "포인터"를 흔히 "포인터 변수"라 한다.
 주소 값과 포인터는 다른 것이다.
• 그림을 통한 포인터의 이해
 컴퓨터의 주소 체계에 따라 크기가 결정
 32비트 시스템 기반 : 4 바이트
• 포인터의 타입과 선언
 포인터 선언 시 사용되는 연산자 : *
 A형 포인터(A*) : A형 변수의 주소 값을 저장
• 주소 관련 연산자
 & 연산자 :  변수의 주소 값 반환
 * 연산자 : 포인터가 가리키는 메모리 참조
• 포인터에 다양한 타입이 존재하는 이유 
 포인터 타입은 참조할 메모리의 크기 정보를 제공

10.2.  잘못된 포인터의 사용
• 사례1
• 사례2

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

C 언어 포인터와 함수  (0) 2019.05.17
C 언어 포인터와 배열  (0) 2019.05.16
C 언어 1차원 배열  (0) 2019.05.15
C 언어 함수와 변수  (0) 2019.05.15
C 언어 조건문(if, else, continue, break, switch)  (0) 2019.05.15

안녕하세요? 허니입니다. 오늘은 C 언어의 함수에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


9장. C 언어 1차원 배열.pptx
0.38MB



C 언어란? 
1차원 배열


9.1.  배열이란 무엇인가?
• 둘 이상의 변수를 동시에 선언하는 효과를 지닌다.
• 많은 양의 데이터를 일괄적으로 처리해야 하는 경우에 유용하다.
• 지역적 특성을 지닐 수도 있고, 전역적 특성을 지닐 수도 있다.


9.2.  1차원 배열의 선언 및 초기화
• 배열 선언에 있어서 필요한 것 세 가지
 배열 길이 : 배열을 구성하는 변수의 개수(반드시 상수를 사용)
 배열 요소 자료형 : 배열을 구성하는 변수의 자료형
 배열 이름 : 배열에 접근할 때 사용되는 이름
• 1차원 배열의 접근
 배열 요소의 위치를 표현 : 인덱스(index)
 인덱스는 0에서부터 시작
• 배열 선언과 접근의 예
• 선언과 동시에 초기화

9.3.  배열 기반 문자열 변수
• 문자열 상수
 문자열이면서 상수의 특징을 지닌다. 
• 문자열 변수
 문자열이면서 변수의 특징을 지닌다.
• 문자열의 특징
 문자열은 널(null)문자를 끝에 지닌다.
 널(null) 문자 : '\0'(아스키 코드 값으로 0)
• 널(null) 문자를 지녀야 하는 이유
– 문자열의 끝을 표현하기 위해서 쓰레기 값과 실제 문자열의 경계를 나타내기 위해 printf 함수는 널 문자를 통해서 출력의 범위를 결정 짓는다. 
• 문자열과 char형 배열의 차이점

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

C 언어 포인터와 배열  (0) 2019.05.16
C 언어 포인터  (0) 2019.05.16
C 언어 함수와 변수  (0) 2019.05.15
C 언어 조건문(if, else, continue, break, switch)  (0) 2019.05.15
C 언어 반복문(for, while, do~while)  (0) 2019.05.15

안녕하세요? 허니입니다. 오늘은 C 언어의 함수와 변수에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


8장. C 언어 함수.pptx
0.92MB



C 언어란?
함수
8.1.  함수의 정의와 선언
• main 함수 다시 보기 : 함수의 기본 형태
• 함수를 정의하는 이유
 모듈화에 의한 프로그램의 질 향상이 가능
 유지 보수 및 확장의 용이성
 문제 해결의 용이성 : "Divide and Conquer!"
• 4가지 형태의 함수
 전달 인자 有, 반환 값 有
 전달 인자 有, 반환 값 無
 전달 인자 無, 반환 값 有
 전달 인자 無, 반환 값 無
• 전달 인자와 반환 값, 둘 다 있는 함수
• 함수 호출 과정의 이해

• 다양한 형태의 함수
• 함수 선언의 필요성
 컴파일러의 특성상, 함수는 호출되기 전에 정의되어야 한다. 
• 함수 선언의 의미
 이후에 정의될 함수에 대한 정보 제공


8.2.  변수의 범위(scope)
• 변수의 특성에 따른 분류
 지역 변수(Local Variable) 
– 중 괄호 내에 선언되는 변수
 전역 변수(Global Variable)
– 함수 내에 선언되지 않는 변수
 정적 변수(Static Variable)
– 함수 내부, 외부 모두 선언 가능
 레지스터 변수(Register Variable)
– 선언에 제한이 많이 따름
• 지역 변수의 접근 범위
 지역 변수는 선언 된 함수 내에서만 접근 가능
• 지역 변수의 메모리상 존재 기간
• 지역 변수의 메모리상 존재 기간
• 지역 변수의 메모리상 존재 기간
• 또 다른 형태의 지역 변수
 while, for, if와 같은 문장에 의해 형성 되는 지역 내에서 선언되는 변수
• 지역 변수의 또 다른 특성
 경우에 따라서 지역 변수는 다른 지역 변수를 가리기도 한다.
• 지역 변수와 매개 변수
 매개 변수도 지역 변수의 일종이다.
• 전역 변수
 프로그램 어디에서나 접근이 가능한 변수
 특정 영역(함수, 반복문...)에 속하지 않는다.
 프로그램이 종료될 때까지 존재
• 전역 변수의 또 다른 특징
 같은 이름의 지역 변수에 의해서 가려지기도 한다. 
• static 변수
 함수 내부 및 외부에 선언 가능하다.
 한번만 초기화된다 : 전역 변수의 특징
 함수 내부에서 선언될 경우 함수 내에서만 접근이 가능하다 : 지역 변수의 특징
• 보다 빠르게! register 변수

8.3.  재귀 함수
• 재귀 함수의 기본적 이해
 자기 자신을 다시 호출하는 형태의 함수
• 탈출 조건의 필요성
 무한 재귀 호출을 피하기 위해서
• 탈출 조건의 이해
• 재귀 함수 Design 사례
 팩토리얼(factorial) 계산을 위한 알고리즘
• 재귀 함수 Design 사례
 알고리즘을 코드로 옮기기 위한 pseudo code와 C 코드

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

C 언어 포인터  (0) 2019.05.16
C 언어 1차원 배열  (0) 2019.05.15
C 언어 조건문(if, else, continue, break, switch)  (0) 2019.05.15
C 언어 반복문(for, while, do~while)  (0) 2019.05.15
C 언어 printf() & scanf() 함수  (0) 2019.05.15

안녕하세요? 허니입니다. 오늘은 C 언어의 조건문(if, else, continue, break, switch)에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


7장. C 언어 조건문.pptx
1.08MB



C 언어란?
조건문에 따른 흐름의 분기


7.1.  흐름의 분기가 필요한 이유
• 상황에 따른 프로그램의 유연성 부여


7.2.  if와 else
• if문에 의한 조건적 실행
 조건이 만족되는 경우에 한해서 실행
• if~else 에 대해서
• if, else if, else에 대해서
• if, else if, else에 대한 진실
 if~else문은 하나의 문장이다. 
 if~else문의 중첩된 형태에 지나지 않는다.
• 조건 연산자(삼항 연산자)
 if~else문을 간결히 표현하는데 사용될 수 있다. 


7.3.  continue & break
• 이제 그만 break!(탈출)
 반복문을 빠져 나올 때 사용
• 다음으로 넘어가자 continue!(생략)
 다음 번 반복으로 넘어갈 때 사용


7.4.  switch에 의한 선택 실행
• switch문의 구조 
• switch문에서 break문의 의미
• switch vs. if~else 1
 분기의 경우 수가 많아지면 가급적 switch문으로...
• switch vs. if~else 2
 switch문에서는 비교 연산이 올 수 없다. 

7.5.  원하는 곳으로 보내주마 goto!
• 프로그램의 흐름을 복잡하게 한다.
 사용하지 말자!

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

C 언어 1차원 배열  (0) 2019.05.15
C 언어 함수와 변수  (0) 2019.05.15
C 언어 반복문(for, while, do~while)  (0) 2019.05.15
C 언어 printf() & scanf() 함수  (0) 2019.05.15
C 언어 상수와 기본 자료형  (0) 2019.05.15

안녕하세요? 허니입니다. 오늘은 C 언어의 반복문(for, while, do~while)에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


6장. C 언어 반복문.pptx
0.64MB




C 언어란?
다양한 형태의 반복문


6.1.  반복문이란?
• 반복문의 기능
 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장
• 세 가지 형태의 반복문
 while문에 의한 반복
 do ~ while문에 의한 반복
 for문에 의한 반복


6.2.  while문에 의한 문장의 반복
• while문의 기본 원리와 의미
• while 문의 중괄호
 반복하고자 하는 영역이 둘 이상의 문장으로 구성되는 경우에 필수
• 무한 루프(반복)
 반복의 조건으로 true가 오면 발생
• while 문의 중첩
 while문 안에 while문을 포함시킨다는 뜻
 반복 구조 내에서 또 하나의 반복 구조 형성
• while문의 순서도


6.3.  do~while문에 의한 문장의 반복
• do~while문과 while문의 차이점
 do~while문은 일단 한번 실행하고 나서 조건 검사를 진행
 예제 nine_nine2.c, add_end.c 참조
• do~while문의 순서도


6.4.  for문에 의한 문장의 반복 
• for문의 기본 원리와 의미
 초기문, 조건문, 증감문 모두를 기본적으로 포함!
 가장 많이 사용되는 반복문
• for문과 while문의 비교
• 반복 과정의 이해

안녕하세요? 허니입니다. 오늘은 C 언어의 printf와 scanf 함수에 대해 포스팅 하려고 합니다. 학생이나 연구원분들에게 많은 도움이 될 것이라고 생각하며 언제든지 질문은 환영입니다.


5장. C 언어 printf와 scanf 함수.pptx
0.16MB



언어란?
printf와 scanf 함수


5.1. printf & scanf 함수
• printf는 문자열을 출력하는 함수이다. 
• printf는 특수 문자 출력이 가능하다.
• 특수 문자가 필요한 이유
 잘못된 문자열 출력
• printf 함수는 서식 지정이 가능하다.
 printf의 f는 "formatted"를 의미한다.
 서식 지정 : 출력의 형태를 지정한다는 의미 (ex : 문자열 안에 숫자 삽입)
 서식 지정의 예
• 서식 문자의 종류와 그 의미
• %c, %d, %f, %s
 가장 많이 쓰이는 서식 문자들
• %o, %u, %x, %X
 부호 없는 정수형 출력
• %e, %E
 '부동소수점 표현 방식'에 의한 출력
• %g, %G
 표현하고자 하는 실수의 값이 소수점 이하 6자리인 경우 %f의 형태로 출력
 이 범위를 넘길 경우 %e의 형태로 출력
• 필드 폭을 지정하여 멋진 출력을!
 서식 문자를 이용해서 출력의 폭 지정 가능
• scanf 함수의 입력 형태 정의
 데이터를 입력받는 형태를 지정할 수 있다. 즉 입력 서식을 지정하는 것이다.  예 : "%d %o %x"
• 실수 입력에 있어서 주의사항
 정밀도 생각!
 소수 6자리 이하의 실수 입력 시 %f 사용
 소수 6자리를 넘는 실수 입력 시 %e 사용
 단! double형 변수를 사용하는 경우에는 서식 문자 %le를 사용

+ Recent posts