교안 오류
안녕 하세요 (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언어 배열 질문을 참고하시면 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
정처기 26-2회. 9번 질문드립니다!
0
26
1
이론 보면서 질문이 있습니다.
0
31
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
39
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
53
2
262 정처기 실기 C언어코딩
0
24
1
정보처리기사 262 실기 Hash(해시) 질문
0
45
2
static 변수 질문입니다.
0
36
2
파이썬 4강 질문입니다.
0
48
2
모의고사 1회 3번문제
0
75
3
41강 30:10
0
51
2
이론 공부법 질문 있습니다.
0
72
2
부모의 생성자 관련 질문
0
50
2
시험지 문제에 필기해도 되나요?
0
59
3
41강 11:23
0
45
2
4강파이썬 질문입니다
0
44
2
try-catch 핸들러명
0
55
2
36강 3:48
0
56
2
35강 18:27
0
52
2
자식 코드 내 super() 생략
0
51
2
출력질문
0
67
2
31강 4:06
0
57
2
파이썬 학습자료가 강의 자료와 다릅니다.
0
81
3
섹션 2 - 9강 강의자료 다운로드 문제
0
68
3
29강 3:09
0
52
2





