C언어 포인터 쓰는 이유?? 가장 쉬운 설명
- 프로그래밍/C/C++
- 2018. 6. 27.
C언어 포인터 쓰는 이유?? 가장 쉬운 설명
처음에 포인터를 공부할 때 왜 포인터를 쓰지?? 쓰는 이유가 뭘까??
이걸 배워야 되나?라고 생각을 했다.
포인터를 배우면서 자꾸 포인터가 왜 쓰일까라고 질문만 했다.
근데 이 밑에 글을 보면서 한 번에 이해가 갔다
포인터를 사용함으로써 복사본을 만들지 않고 주소만 알려줌으로 해서
용량 및 처리시간에 이득을 볼 수 있습니다.
메모리가 한정적이거나 처리시간이 중요한 시스템에서 사용할 경우 도움이 되겠지요.
예를 들어 다음과 같은 코드가 있을 때
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | typedef struct adc { int a[10000]; char b[10000]; }S_ABC; void call_you(S_ABC abc_struct_2) { /* ~~~~ */ } void main() { S_ABC abc_struct_1; call_you(abc_struce_1); } | cs |
main에서 abc_struct_1이라는 20000개의 배열을 가진 거대한 구조체 변수를 만듭니다.
이 구조체에 있는 내용을 call_you라는 함수에서 쓰기 위해 인자로 보내면
abc_struct_1이라는 구조체 변수의 내용이 abc_struct_2라는 구조체 변수가 만들어지면서 복사가 됩니다.
그럼 40000개의 배열이 메모리 차지하게 되는 거지요...
포인터를 써서 abc_struct_1에 찾아가서 처리하라고 하면 추가로 20000개의 배열을 만들지 않고도 똑같은 일을 할 수 있습니다.
포인터 활용법은 이렇게 된다.
포인터 활용법을 알고 있으니 이제 공부가 더 잘 되겠다.
포인터가 매우 중요하다고 하는데 이제 왜 중요한지 알게 되었다.
2018/07/17 - [프로그래밍/C] - C언어 함수 포인터 쓰는 이유?? 가장 쉬운 설명