작성
·
168
0
[9.17 00:47]
포인터 자료형이라는 것이 별도로 존재합니까?
(몇 강인지는 구체적으로 기억나지 않습니다만 교수님께서 앞에서 포인터 자료형 같은 것은 별도로 존재하지 않는다고 말씀한 걸로 기억하고 있습니다.)
코드 예제를 보면 char*, float*와 같은 것들을 sizeof()의 인자로 사용하고 있습니다.
변수 선언 시, char* ptr_a = &a; 에서 *ptr_a의 자료형이 char라는 것을 규명하기 위해 char를 사용하는 것으로 이해하고 있습니다.
답변 2
0
교수님. 답변 감사합니다.
그럼 char*, int* 같은 것들을 지칭하는 명확한 개념은 존재하지 않습니까?
" char* 자료형이 있는 것 처럼 생각할 수 도 있습니다" 라는 말씀은 "포인터 자료형은 존재하지 않는다"는 말씀으로 이해해도 괜찮죠?
typedef를 이용해 재정의 해주지 않았음에도 불구하고 sizeof(char*)가 잘 작동하는데 그럼 sizeof(char*)에서 char* 는 무엇으로 간주해야 합니까?
(현재 배운 것만으로는 이해가 힘든 부분일까요? 그렇다면 일단 넘어가고 뒤에 가서 공부를 더한 뒤 그때도 모르면 다시 질문 드리겠습니다.)
0
안녕하세요?
이해하신 게 맞고요.
이해에 도움이 된다는 측면에서 char* 자료형이 있는 것 처럼 생각할 수 도 있습니다.
규명이라고 말씀하신게 해당 포인터 변수를 dereferencing 했을 때 메모리에서 얼마만큼 봐야하는 지를 언급하신 거라면 맞습니다.
이런 의문은 작은 예제를 하나 만들어서 직접 체크해보면 이해에 도움이 되는데요.
저는 아래와 같이 해봤습니다.
<코드>
<결과>
뒤에 가시면 typedef를 배우게 되는데요.
typedef를 이용해서
마치 char* 자료형이 있는 것 처럼 이름을 재정의 해줄 수 있거든요.
그 강의를 보시면 이해에 도움이 될 수도 있을 겁니다.
감사합니다.