inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

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

08:30 이중포인터 질문

해결된 질문

54

유선영

작성한 질문수 1

0

char *ptr_a=str;

char **ptr_b=&ptr_a;

 

ptr_a는 str 배열의 주소를 저장한 포인터로 선언이 된거고, ptr_b는 ptr_a 주소를 저장한 포인터인데, ptr_b 포인터를 선언할 때 *이거 별표를 꼭 2번 써야 하는건가요?

char *ptr_b=ptr_a;

이렇게 선언하면 안되는건지, 그리고 ptr_a도 배열인데 앞에 &를 쓰면 오류가 아닌지 헷갈립니다.

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

답변 1

1

주말코딩

안녕하세요! 헷갈리기 쉬운 부분인데 아주 좋은 질문이에요.

이 코드 기준으로 하나씩 짚어드릴게요


1. 별표(*) 개수는 "몇 단계를 건너야 실제 값이 나오는가"를 뜻해요

  • str → 실제 문자들이 담긴 배열

  • ptr_a → str의 주소를 담음 (1단계) → 그래서 char *

  • ptr_b → ptr_a의 주소를 담음 (2단계) → 그래서 char **

&ptr_a의 타입 자체가 char **예요.

담는 그릇(ptr_b)도 똑같이 char **여야 타입이 맞습니다.

별표를 하나만 쓰면 단계가 안 맞아서 오류가 나요.


2. char *ptr_b = ptr_a;는 오류는 아니지만, 의미가 완전히 달라져요

  • 이렇게 쓰면 → ptr_b가 ptr_a와 똑같이 str을 가리킴

  • 원하시는 것 → ptr_b가 ptr_a를 가리킴 (char **ptr_b = &ptr_a;)

앞의 방식으로 쓰면 아래 *ptr_b = str2; 같은 이중 포인터 동작을 할 수 없어요.

"ptr_a의 주소를 저장"하려면 반드시 **&를 함께 써야 합니다.


3. ptr_a 앞에 &를 쓰는 건 전혀 문제없어요

  • 배열은 str이고, ptr_a는 엄연한 포인터 **"변수"**예요

  • 변수는 자기만의 주소를 가지므로 &ptr_a도 당연히 가능하고

  • 그 결과가 바로 char ** 타입입니다


한 줄 요약

  • & → "그 변수가 저장된 주소를 달라"

  • * 개수 → "그 주소가 몇 단계짜리 포인터인지"

이 둘을 짝지어 생각하시면 훨씬 덜 헷갈리실 거예요. 화이팅입니다! :)

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

0

10

1

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

0

51

2

조건 반복문 질문: for 문 ?

0

62

1

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

0

79

1

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

0

75

2

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

0

87

2

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

0

148

2

262 정처기 실기 C언어코딩

0

46

1

정보처리기사 262 실기 Hash(해시) 질문

0

78

2

static 변수 질문입니다.

0

61

2

파이썬 4강 질문입니다.

0

68

2

모의고사 1회 3번문제

0

88

3

41강 30:10

0

67

2

이론 공부법 질문 있습니다.

0

89

2

부모의 생성자 관련 질문

0

66

2

시험지 문제에 필기해도 되나요?

0

89

3

41강 11:23

0

59

2

4강파이썬 질문입니다

0

54

2

try-catch 핸들러명

0

65

2

36강 3:48

0

64

2

35강 18:27

0

66

2

자식 코드 내 super() 생략

0

60

2

출력질문

0

75

2

31강 4:06

0

66

2