pointer
-
[C Language] 43. 포인터 - 매개변수 처리 총정리CSE/C Language 2015. 8. 10. 11:14
1. 매개변수가 1차원 배열인 경우 1차원 배열이 int 형인 경우 1234567891011121314151617181920212223242526272829/* * parameter.c * * Created on: 2015. 8. 10. * Author: Yeonsu */ #include void print_temp(int *, int); int main(void) { int sum; int tmp[] = { 11, 42, 19, 82, 57 }; print_temp(tmp, sizeof(tmp) / sizeof(int)); return 0;} void print_temp(int *tmp, int length) { int i; for (i = 0; i
-
[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] 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..
-
[C Language] 36. 1차원 배열과 포인터 - C 언어CSE/C Language 2015. 7. 20. 15:46
1. 1차원 배열과 포인터 변수 초기화 1차원 배열에 대해서는 앞 단원에서 충분히 배웠으므로 여기서는 배열과 포인터의 결합에 대해 알아보도록 하자. 123456789101112131415161718192021 /* * arrp.c * * Created on: 2015. 7. 20. * Author: Yeonsu */ #include int main(void) { int tmp[3] = {15, 77, 41}; int *tmp_p; tmp_p = tmp; printf("%d\n", *tmp_p); return 0;} cs 포인터를 많이 사용해 보지 않았다면 이상하고 생각된 결과 일 것이다. 왜냐하면 tmp_p = tmp에서 tmp의 앞에 & 연산자가 없기 때문이다. 이를 이해하려면 다음 두 가지를 각인시켜..
-
[C Language] 35. 포인터 기초 - C 언어CSE/C Language 2015. 7. 20. 14:08
1. 포인터란? 포인터란 메모리의 위치를 기호화한 표현이다. 우리가 친구 집을 찾아가기 위해서는 주소가 필요한 것처럼 시스템에서도 특정한 값을 찾기 위해서는 주소가 필요하다. 실생활에서의 주소는 시, 도, 군등으로 나누지만 시스템에서는 4 바이트로 표시하도록 되어 있으며 일반적으로 다음과 같이 표기한다. 0x4600F269 상당히 기계적인 표현이라 정이 안가는 형태이지만 포인터를 정복하기 위한 가장 첫 걸음이므로 너무 거부감을 갖지말고 보자. 언젠가는 정감있는 표현으로 다가올 날이 있을 것이다. 0x 는 다음에 이어지는 표현이 16진수임을 뜻하고 연이은 8 자리 문자와 숫자의 조합은 주소 값을 의미한다. 16진수이기 때문에 숫자 중간에 A ~ F 까지의 문자가 올 수 있다. 우리는 흔히 자신의 컴퓨터 사..