inflearn logo
강의

Khóa học

Chia sẻ kiến thức

(Mới nhất 2026!) Vượt qua kỳ thi thực hành Kỹ sư xử lý thông tin chỉ trong một tuần

Thao tác con trỏ và dạng đề thi (2. Tăng/giảm con trỏ, con trỏ cấp hai)

16강 2:17

3

happwhy

15 câu hỏi đã được viết

0

image.png

char *ptr_a=a;
int
*ptr_b=b;

왜 위와 같이 배열의 주소를 a, b로 선언한건지? 선언을 해야 하는건지? 이해가 안 가요

저렇게 되면 ptr_a의 메모리 주소는 a, ptr_b의 메모리 주소는 b가 되는거니까 출력할때 각각 a,b가 나올 줄 알았는데, 배열의 첫번째 요소로 되니까 헷갈려요ㅠ

python java c 정보처리기사 정보처리산업기사

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 가보자고님.

질문해주신 C 언어의 포인터와 배열 주소 관계에 대해 풀어서 설명드릴게요.

  1. 포인터와 배열의 관계:

    • 배열의 이름(예: a 또는 b)은 배열의 첫 번째 요소의 주소를 나타냅니다. 즉, char *ptr_a = a;라는 선언은 ptr_a를 배열 a의 첫 번째 요소를 가리키도록 합니다.
    • 이런 식으로 int *ptr_b = b;도 배열 b의 첫 번째 요소를 가리킵니다.
  2. 포인터 사용의 의미:

    • 포인터 ptr_a 또는 ptr_b가 배열의 첫 번째 요소를 가리키기 때문에, *ptr_a*ptr_b로 접근하면 첫 번째 요소의 값을 가져옵니다.
    • 이를 통해 포인터 연산을 하면 포인터가 다음 요소를 가리키도록 위치가 이동하면서 배열의 다른 요소들에 쉽게 접근할 수 있습니다.
  3. 포인터 증감 연산:

    • 포인터를 증가시키면 ptr_a++ 또는 ptr_b++와 같이 포인터가 다음 요소의 주소로 이동하게 됩니다. 예를 들면, ptr_a가 초기에는 a[0]을 가리켰다면, ptr_a++ 후에는 a[1]의 요소를 가리키게 됩니다.
    • 따라서 printf("%c\n", *ptr_a);와 같이 사용하면 현재 위치의 요소 값을 출력합니다.

피해야 할 혼동:
- ptr_aptr_b 자체는 주소를 보관하지만, *ptr_a*ptr_b는 각각 그 주소의 실제 값을 가져오는 것입니다.
- 잘못된 출력 결과는 포인터가 가리키는 위치를 이해하지 못했을 때 발생할 수 있습니다.

관련 자료 및 비슷한 경우에 대한 추가 설명은 다음 링크를 참고하세요:
- 포인터와 배열의 관계 이해하기
- 배열의 첫 번째 인덱스 이해

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

부모 및 자식 생성자 출력 관련

0

5

1

부모 및 자식 생성자 출력

0

5

2

9강 35분경 질문있습니다

0

21

2

11강 3:20

0

22

2

10강 11:42

0

20

2

9강 26:23

0

29

2

9강 23:46

0

26

2

코드 중간에 . 붙은건 뭐라고 봐야할까요?

0

35

2

설명중 단어 의미 해석 문제.

0

25

1

수강 섹션마다 옆에 자료 다운로드 버튼이 있는데. 다운받으면 무슨내용이 있는건가요?

0

20

1

SQL 집중학습

0

40

1

NULL과 0

0

40

2

26년 1회 기출문제 11번 질문드립니다

0

43

1

업캐스팅 문제예시5 & 업캐스팅 문제 예시 6

0

43

2

V1.2 VS V.091

0

48

2

split('T')일때는 T만 제거되는거고 공백은 제거되지 않는 건가요?

0

50

2

파이썬 언어 업데이트, 언어별 학습자료 업데이트

0

48

2

C, java, python 언어 기출문제 강의 질문

0

52

2

1:26 에서 반복문 i[1] 이니까 0 다음 두번째 항목들 아닌가요

0

49

2

d

0

45

2

출력값

0

43

2

(기출) 2023년 3회 코드해석 문제의 1:10입니다.

0

50

2

23년도 2회 c언어 0:03 n[(i+6)%5] 도 가능한건가요?

0

50

2

정처기 질문

0

53

2