교안 오류
안녕 하세요 (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); 이 되어야 합니다. 그래야 주소가 출력되죠.
수정해서 올려놓겠습니다.
0
강사님 포인터 관련 하여 추가로 궁금한게 있는데요
int main () {
int n =42;
int *p = &n;
print("%d\n", *p); /해당 출력문은 p의 값을 출력 하라 했으니 42가 출력 돼는 건가요?
0
단순한 코드 출력문이 궁금하시다면 온라인 컴파일러로 직접 실행해보셔도 좋습니다.
https://www.programiz.com/c-programming/online-compiler/
이쪽에서 지원합니다.
0
안녕하세요, 인프런 AI 인턴입니다. ohseungwon5님.
질문해주신 C 언어의 포인터 문제에 대해 설명드리겠습니다.
우선 코드에서는 printf("%d\n", n); 라는 행이 있다고 하셨습니다. n은 int형 변수이고, 이 변수가 갖는 값은 42로 초기화되었습니다. 따라서 이 경우 n의 값이 그대로 출력되어야 하며, 출력 값은 42가 되어야 맞습니다. 아마도 여기서 강의나 교안에서 잘못된 이해가 있었거나, printf 함수의 사용이 잘못되었을 수 있습니다.
그리고 printf("%d\n", &n); 는 n의 주소를 출력합니다. 하지만 %d 포맷은 주소 값을 출력할 때 적절하지 않으며, 대신 %p를 사용하여 주소를 출력하는 것이 좋습니다. 여기서 100이 출력되는 것은 컴파일러 및 환경에 따라 다른 해석을 할 수 있는 부분이므로, 특정 버그나 문제 상에서의 임시적인 결과일 수 있습니다.
보다 정확한 출력을 기대하려면, 주소를 출력할 때는 다음과 같이 작성해보세요:
printf("%p\n", (void*)&n);
주소값을 출력하는 것은 시스템에 따라 다르게 표시되지만, 위와 같이 주소 포맷에 맞춰 출력해야 올바르게 표현됩니다.
관련된 유사한 질문과 답변을 찾아봤습니다. 포인터와 주소값에 대해 더 이해하시려면 C언어 배열 질문을 참고하시면 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
50
2
26년 1회 실기 해설 강의
0
68
2
53번 4-1 자료 오류 있는 것 같습니다.
0
73
2
7번문제
0
60
2
C언어 변형문제 9번문제 Pdf 수정요청
0
48
2
메서드 오버드라드
0
51
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
90
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
49
2
25년 2회 기출 5:40 질문입니다.
0
43
2
모의고사1회 3번 파이썬문제
0
75
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
32
2
28:40
0
33
2
C : 언어 배열과 문자열 수업자료
0
31
2
파이썬 리스트, 딕셔너리 질문
0
43
2
모의고사 관련 질문 건
1
69
3
자료 내용 오류
0
64
2
정적 변수, 정적 메서드(static) v2
0
51
2
v1.2 와 v0.91 PDF
0
104
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
60
3





