인프런 커뮤니티 질문&답변

ohseungwon5님의 프로필 이미지
ohseungwon5

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

포인터의 개념과 활용

교안 오류

해결된 질문

작성

·

86

0

안녕 하세요 (5:24) 강사님 포인터 이론 공부 하던중 아래 코드는 강의 내용 ppt 에 없는거 같습니다. 그리고 왜 n 값을 출력 하라 했는데 100 이 출력 되었는지 이해가 안됩니다.

#include <stdio.h>

int main() {

int n = 42;

int *p = &n;

 

printf("%d\n", n); // ㅎ당 출력문은 왜 100이 출력 돼는지 이해가 안됩니다. 42가 출력 되어야 하는게 아닌가요?

printf("%d\n", &n); // 헤딩 출력문은 n의 주소값을 출력 하라고 했으니 100 출력

따라서 출력값은

42

100

위의 처럼 되어야 하는거 아닌가요? 제가 잘못 이해 한것 일까요?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

교안이 잘못되어있네요.

printf("%d\n", p); 이 되어야 합니다. 그래야 주소가 출력되죠.

수정해서 올려놓겠습니다.

ohseungwon5님의 프로필 이미지
ohseungwon5
질문자

넵 감사합니다 강사님 3트째인데 열심히 달려 보겠습니다😭

주말코딩님의 프로필 이미지
주말코딩
지식공유자

교안 틀린 것을 찾아내실 정도면 주소랑 값은 확실하게 맞히실 것이라 생각합니다. 화이팅입니다.

ohseungwon5님의 프로필 이미지
ohseungwon5
질문자

강사님 포인터 관련 하여 추가로 궁금한게 있는데요

int main () {

int n =42;

int *p = &n;

print("%d\n", *p); /해당 출력문은 p의 값을 출력 하라 했으니 42가 출력 돼는 건가요?

주말코딩님의 프로필 이미지
주말코딩
지식공유자

print 뒤에 f 붙어야 하는 것 아시죠?

42 출력되는 것 맞습니다.

 

ohseungwon5님의 프로필 이미지
ohseungwon5
질문자

넵 감사합니다.

주말코딩님의 프로필 이미지
주말코딩
지식공유자

단순한 코드 출력문이 궁금하시다면 온라인 컴파일러로 직접 실행해보셔도 좋습니다.

https://www.programiz.com/c-programming/online-compiler/

 

이쪽에서 지원합니다.

ohseungwon5님의 프로필 이미지
ohseungwon5
질문자

넵 얄겠습니다. 단순한 출력문은 되도록 질문은 지양 하고 웹 컴파일러 사용을 지향 하도록 하겠습니다

주말코딩님의 프로필 이미지
주말코딩
지식공유자

아뇨 그런 얘기는 아니고..;; 질문 하셔도 됩니다. 다양하게 공부할 때 도움되시라고 전달드린겁니다..^^; 오해 마시길.

0

안녕하세요, 인프런 AI 인턴입니다. ohseungwon5님.

질문해주신 C 언어의 포인터 문제에 대해 설명드리겠습니다.

우선 코드에서는 printf("%d\n", n); 라는 행이 있다고 하셨습니다. nint형 변수이고, 이 변수가 갖는 값은 42로 초기화되었습니다. 따라서 이 경우 n의 값이 그대로 출력되어야 하며, 출력 값은 42가 되어야 맞습니다. 아마도 여기서 강의나 교안에서 잘못된 이해가 있었거나, printf 함수의 사용이 잘못되었을 수 있습니다.

그리고 printf("%d\n", &n);n의 주소를 출력합니다. 하지만 %d 포맷은 주소 값을 출력할 때 적절하지 않으며, 대신 %p를 사용하여 주소를 출력하는 것이 좋습니다. 여기서 100이 출력되는 것은 컴파일러 및 환경에 따라 다른 해석을 할 수 있는 부분이므로, 특정 버그나 문제 상에서의 임시적인 결과일 수 있습니다.

보다 정확한 출력을 기대하려면, 주소를 출력할 때는 다음과 같이 작성해보세요:

printf("%p\n", (void*)&n);

주소값을 출력하는 것은 시스템에 따라 다르게 표시되지만, 위와 같이 주소 포맷에 맞춰 출력해야 올바르게 표현됩니다.

관련된 유사한 질문과 답변을 찾아봤습니다. 포인터와 주소값에 대해 더 이해하시려면 C언어 배열 질문을 참고하시면 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ohseungwon5님의 프로필 이미지
ohseungwon5

작성한 질문수

질문하기