포인터 2

[week05] 포인터 이해하기 - part.2

포인터의 포인터 포인터의 포인터는 어떻게 표현할까? 쉽게 상상할 수 있듯이 다음과 같이 정의한다. int **p 위는 int를 가리키는 포인터를 가리키는 포인터라고 할 수 있다. 포인터의 포인터 예제 #include int main(){ int a; int *pa; int **ppa; pa = &a; ppa = &pa; a = 3; printf("a : %d // *pa : %d // **ppa : %d \n", a, *pa, **ppa); printf("&a : %p // pa : %p // *ppa : %p \n", &a, pa, *ppa); printf("&pa : %p // ppa : %p \n", &pa, ppa); return 0; } // a : 3 // *pa : 3 // **ppa : 3..

[week05] 포인터 이해하기 - part.1

포인터의 악명 C언어를 조금이라도 공부해 본 사람들은 악명 높은 포인터에 대해 잘 알고 있을 것이다. 심지어 C언어를 공부하지 않았던 사람이라도 주변 사람들이 포인터로 고통받는 것을 목격했을지도 모른다. 이 포인터란 놈은 헷갈리기 쉬운 개념이기 때문에 이번 기회에 차근차근 알아가 보려고 한다. 포인터를 알아보자 포인터는 특정한 데이터가 저장된 (시작)주소값을 보관하는 변수다. 우리가 예전에 다뤄왔던 int나 float을 생각해보자. int형 변수는 정수를 보관한다. float형 변수가 실수를 보관한다. 마찬가지로 포인터는 주소값을 보관한다. 포인터는 아주 새로운놈은 아니었던 것이다. 뭐야? 포인터도 그냥 int, char 같이 어떤 형태의 값을 보관하는 변수잖아? 별거 아녔네!라고 생각하자(그렇지 않더라..