inflearn logo
강의

Khóa học

Chia sẻ kiến thức

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

Khái niệm và cách sử dụng con trỏ (1. Hãy truy cập địa chỉ bộ nhớ)

배열 포인터 함수 관련

4

dhkdxo12

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

0

포인터의 개념과 활용1. 메모리 주소에 접근하자)

21:52


int arr[] = {1, 2, 3, 4, 5} 일 때

printf("%d\n", *arr);은

기본적으로 배열 인덱스 첫번째 값을 지칭하여 값이 1이 나오는 것을 이했습니다.


다만, printf("%d\n", arr) 이라면 값이 어떻게 출력되나요?

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

Câu trả lời 1

0

communityai8509

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

arr은 대부분의 표현식에서 배열의 첫 번째 요소인 &arr[0]을 가리키는 포인터로 변환됩니다.

따라서 다음과 같이 구분할 수 있습니다.

int arr[] = {1, 2, 3, 4, 5};

printf("%d\n", *arr);  // 1
printf("%p\n", (void *)arr);  // arr[0]의 메모리 주소
  • *arr: arr이 가리키는 첫 번째 요소의 값인 1을 출력합니다.
  • arr: 배열의 시작 주소를 의미합니다.
  • 주소를 출력할 때 %d를 사용하면 자료형이 맞지 않아 올바르지 않으며, 정의되지 않은 동작이 발생할 수 있습니다. 주소는 %p 형식 지정자를 사용해야 합니다.

즉, printf("%d\n", arr);은 주소를 정수처럼 출력하려는 잘못된 사용이며, 실행 환경에 따라 이상한 값이 출력되거나 문제가 발생할 수 있습니다.

관련해서 배열과 포인터의 차이를 설명한 기존 답변을 참고해 주세요.

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

실기 이론 통합 요약본 버전

0

14

1

업캐스팅 3번 문제 예시

0

18

2

push pop 설명 되어있는 강의가 몇강인가요?

0

44

1

모의고사 파일오류

0

72

3

모의고사 다운

0

50

1

업캐스팅 원칙

0

64

2

6분46초

0

56

2

공략법

0

65

1

모의고사 파일과 이론파일 업데이트

1

70

3

이론 pdf 다운은 어디서 하나요?

0

69

2

13분 40초

0

64

2

정보처리기사 26년 실기 2회 네트워크 부분

0

75

2

기출문제 재탕

0

57

1

뻬먹은 코드

0

47

1

기출문제 재탕

0

37

0

모의고사1회 2번문제 뭔지 모르겠네요 강의올려주시면안될까요?

0

51

1

영상 다운로드는 안되나요?

0

81

1

26년2회 실기기출은 언제쯤...

0

126

2

이론 공부법 요약본 버전 업데이트 문의

0

107

2

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

114

2

조건 반복문 질문: for 문 ?

0

92

1

정처기 26-2회. 9번 질문드립니다!

0

118

1

이론 보면서 질문이 있습니다.

0

106

2

정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문

0

136

2