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

Thao tác con trỏ và dạng bài thường gặp (2. Tăng/giảm con trỏ, con trỏ kép)

배열 포인터 출력 표시

Đã giải quyết

54

dhkdxo12

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

0

포인터 조작과 출제 패턴(2. 포인터 증가/감소, 이중 포인터)

7:16

포인터 조작과 출제 패턴(2. 포인터 증가/감소, 이중 포인터)

7:03

char str[] = "Hello";

char *ptr_a = str

*ptr_ a = &str[0]

printf("%c\n", ptr_a[1]); 여기에서 왜 *ptr_a[1]이 아니라 *를 제거한 ptr_a[1]이 오는 걸까요?

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

Câu trả lời 2

0

weekendcode

단순하게 생각하시는 것이 좋습니다.

C언어에서는 배열의 이름도 메모리 주소로, 포인터 변수 자체도 메모리 주소입니다. 둘 다 변수명만 다르지 실제로 안을 까보면 메모리 주소를 담고 있다는 것이죠.


그래서 값으로 표현하려면 앞에 별표를(*) 붙여서 역참조라는 과정으로 환산해야하지만,

인덱스 [숫자]가 붙는 경우에는 해당 값을 직접 가리킨다고 생각하시면 됩니다.


이건 사실 암기의 영역입니다. 포인터 이름에 별표를 붙이면 값으로 바뀌고, 인덱스로 접근하면 값으로 된다로 외우시는 것이 빠릅니다.

0

communityai8509

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

ptr_a[1]은 배열 인덱스 연산 자체가 역참조를 포함하므로, 별표(*)를 추가하지 않습니다.

char str[] = "Hello";
char *ptr_a = str;

이때 ptr_a는 str[0]인 'H'의 주소를 가리킵니다.

ptr_a[1]

은 다음 표현과 완전히 같습니다.

*(ptr_a + 1)

따라서 ptr_a[1]은 두 번째 요소인 'e'를 바로 가져옵니다.

반면 아래와 같이 작성하면,

*ptr_a[1]

연산자 우선순위에 따라 다음처럼 해석됩니다.

*(ptr_a[1])

ptr_a[1]은 이미 문자값인 'e'를 반환하는데, 여기에 다시 *를 적용하면 문자값을 주소로 간주해 역참조하려 하므로 잘못된 표현입니다.

즉, 다음 두 표현은 같은 의미입니다.

ptr_a[1]
*(ptr_a + 1)

배열과 포인터 인덱싱에 대한 유사한 기존 답변도 참고해 주세요.

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

서브넷 마스크

0

0

0

모의고사 1회 계산문제 2개 맞았는데

0

17

1

업캐스팅 문제 예시 4번 부모 호출

0

21

1

모의고사 자료 해설이 너무 불친절하네요.

0

54

2

부모의 생성자 출력 관련

0

21

2

이론파트 재탕문제

0

23

0

누락코드

0

22

1

다차원 배열 포인터 질문있습니다

0

41

3

이론 파트 재탕

0

38

1

모의고사 5회

0

36

1

12분 10초 func(values, 0, 1)을 넣을 때

0

38

1

모의고사 1회 4번 문제와 관련한 질문이 있습니다.

0

43

2

재탕문제

0

57

1

재탕문제

0

38

0

파이썬 추가 코드

0

54

1

포인터 증감 또는 값 증감

0

54

2

배열 포인터 함수 관련

0

52

2

실기 이론 통합 요약본 버전

0

67

2

업캐스팅 3번 문제 예시

0

63

2

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

0

53

1

모의고사 파일오류

1

84

3

모의고사 다운

0

59

1

업캐스팅 원칙

0

71

2

6분46초

0

61

2