C language
-
[C Language] 42. void형 포인터 - C 언어CSE/C Language 2015. 8. 5. 14:33
1. void 형 포인터란? 널 포인터가 포인터임에도 불구하고 어느 곳도 가리키고 있지 않는 데 반해, void 형 포인터는 무엇이든 가리킬 수 있는 포인터이다. 널 포인터가 아무것도 넣을 수 없는 자루라면 void 형 포인터는 무엇이든 들어가는 자루이다. void 형 포인터는 현재 가리키고 있는 대상체가 정해져 있지 않는 포인터이다. 바꾸어 말하면 현재 가리키는 대상체가 정해져 있지 않기 때문에 대상체만 정해지면 얼마든지 사용할 수 있다는 의미이다. 2. void 형 포인터 변수 정의 char 형 포인터는 'char *' 로 표기할 수 있고 int 형 포인터는 'int *'로 표기할 수 있다. 마찬가지로 void 형 포인터는 'void *'로 표기한다. void *void_p; void_p는 포인터 변..
-
[C Language] 41. 포인터의 개념을 깨는 '0'CSE/C Language 2015. 8. 5. 13:47
지금까지 배운 포인터에 대한 개념으로 설명이 불가능한 프로그램이 있다. 아래 예제를 보도록하자. 1234567891011121314151617181920/* * nullp.c * * Created on: 2015. 8. 5. * Author: Yeonsu */ #include int main(void) { char *char_p; char_p = 0; printf("%x\n", char_p); return 0;} cs 포인터를 설명할 때 수없이 강조했던 내용이 '포인터 변수에는 주소 값 이외에는 어떠한 값도 할당할 수 없다'라는 것이다. 하지만 위의 프로그램으로 0 이라는 정수 값에 포인터 변수에 할당되고 있으며 컴파일 문제가 발생하지 않는다. 컴파일러는 위의 프로그램을 어떻게 해석하길래 문제가 발생하지..
-
[C Language] 39. 포인터의 포인터 - C 언어CSE/C Language 2015. 8. 5. 11:32
1. 포인터의 포인터란? 이해를 돕기 위해서 배열을 먼저 예로 들어 보자. - 1차원 배열: int apple[5]; - 2차원 배열: int banana[2][10]; - 3차원 배열: int chocolate[3][4][5]; 1차원 배열은 관리 대상이 1차원이며 모두 5개의 요소로 구성되어 있다. 2차원 배열은 관리대상이 2차원이다. 2차원 이라는 것은 1차원 배열의 모임이므로 이것을 '배열의 배열'이라고 칭할 수 있다. 배열의 배열이라는 것은 결국 배열을 관리하는 배열이 존재한다는 것이다. 3차원 배열은 '배열의 배열의 배열'이 되며 2차원 배열을 관리하는 배열이라고 생각하자. 이를 포인터로 적용하면 아래와 같다. - 포인터 변수 정의: char *apple; - 포인터의 포인터 변수 정의: ch..