새싹교실/2017/C언어가르쳐조/5월23일 (rev. 1.3)
- 2시간 강의
- 함수 잠깐 복습
- 함수 선언, 선언 후 정의, main 함수, 재귀 함수
- 대망의 포인터
- C의 자료 저장 방식
- 포인터 : 주소값을 저장하는 변수
type
*identifier
[, ...]
;
- *(unary), &(unary)
- 주소 연산
- void 포인터
- 배열과 포인터의 관계
- [] 연산자
- 함수 인자값으로서의 포인터
- 값에 의한 호출call by value , 참조에 의한 호출call by reference
- 포인터 배열/ 배열 포인터/이중 포인터/이차원 배열과 포인터
===============================================================================
- 더 많은 포인터
- 동적 메모리 할당
- void* malloc(size_t size);
- free(void* ptr);
- 메모리 누수memory leak , 허상 포인터dangling pointer
- NULL 포인터
- void* realloc(void *ptr, size_t size);
- calloc 함수
- const * / * const(상수 포인터/ 포인터 상수)
- 함수 포인터
type
(*identifier
)([
[type]
[, ...]
]
);
- typedef
- 등호연산자에서 왼쪽 : r-value, 오른쪽 : l-value.
- 포인터의 특징 : 연산을 할 수 있다.
- *x+1 을 하면 1칸 이동인데 1칸의 기준은 자료형이다.(int 는 4칸...)
- 포인터와 일반 상수를 동시에 선언 할 수 있다.
- 포인터도 타입이기 때문에 한줄에 한 포인터를 선언하는 것을 권장함.
- 모든 자료형은 포인터를 가진다.
회장님 등장 포인터 쓰레기라는 말을 남기고 가심.