정보처리기사 실기 23년 1회 C언어 문제 풀이 강좌 3분 23초
정보처리기사 실기 23년 1회 C언어 문제 풀이 강좌 3분 23초에 나오는 내용에 대한 질문입니다.
포인터와 관련해서 이야기를 해주셨는데 강의 내용에서 언급한대로 p는 값 또는 메모리를 가리킬 수 있습니다. 그런데 선언할 때는 포인터이고 사용할 때는 값이라고 하셨는데 printf에서 사용한 p는 사용할 때니 값이 나와야 하는 것 아닌가요?
당연히 정처기 문제에서 바뀌는 값이 나올 순 없지만 포인터에 대해 이해하기 위해 질문합니다.
그렇다면 더불어서 printf에서 사용한 p 와 a에 대한 차이점은 무엇인가요?
답변 2
0
안녕하세요.
지금 p는 이해하신 그대로 char 형태를 가리키는 포인터 변수입니다.
p = a는 a의 가장 첫 부분을 가리키라는 뜻입니다. (위의 NULL을 엎어치기 때문에 가리키게 됩니다.)
그리고 아래에는 *p니까 말씀하신대로 값을 가져와서 A를 출력하는 것입니다.
맨 아래의 p는 %s로 출력하기 때문입니다.
%s 자체가 지금 가리키고 있는 주소(혹은 배열, 문자열)부터 '\0'을 만날 때까지 모두 출력하라는 뜻입니다.
a와 p 차이 없습니다.
C언어에서는 배열의 이름이 메모리 주소로도 사용되기 때문입니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김혁수님의 질문과 유사한 내용을 다룬 몇 가지 게시글을 참고해 마크다운 형식으로 URL을 제공해드립니다.
-
- 이 게시글에서는 C 언어의 포인터와 관련된 다양한 내용을 포함하고 있으며, 특히
printf함수에서 포인터를 값으로 사용할 때의 동작 원리에 대해서도 설명합니다.
- 이 게시글에서는 C 언어의 포인터와 관련된 다양한 내용을 포함하고 있으며, 특히
함수와 재귀함수_포인터를 입력값으로 받는 함수 22:40
- 여기에서는
printf함수에서 포인터가 문자열의 첫 번째 주소를 가리키는 경우에 값을 어떻게 출력하는지를 설명합니다. 또한 포인터 변수와 배열 이름이 어떻게 동작하는지도 다룹니다.
- 여기에서는
위의 링크를 참고하여 포인터 변수와 printf 함수에서 변수 사용의 차이점을 더 잘 이해하실 수 있을 것입니다.
추가적으로, 포인터와 printf 함수에서 각각의 변수 사용에 대한 설명을 덧붙이자면:
포인터는 변수나 메모리 주소를 가리킬 수 있지만, printf에서 사용될 때는 그 포인터가 가리키는 실제 값을 출력하게 됩니다. 따라서 printf("%d", *p)는 포인터 p가 가리키는 값을 출력하고, printf("%p", p)는 포인터 p 자체의 주소를 출력합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
39
2
26년 1회 실기 해설 강의
0
54
2
53번 4-1 자료 오류 있는 것 같습니다.
0
70
2
7번문제
0
58
2
C언어 변형문제 9번문제 Pdf 수정요청
0
46
2
메서드 오버드라드
0
47
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
86
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
47
2
25년 2회 기출 5:40 질문입니다.
0
39
2
모의고사1회 3번 파이썬문제
0
73
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
31
2
28:40
0
33
2
C : 언어 배열과 문자열 수업자료
0
29
2
파이썬 리스트, 딕셔너리 질문
0
41
2
모의고사 관련 질문 건
1
68
3
자료 내용 오류
0
63
2
정적 변수, 정적 메서드(static) v2
0
47
2
v1.2 와 v0.91 PDF
0
101
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
57
3





