inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

(기출) 2023년 1회 코드해석 문제

포인터 주소값이 null?

해결된 질문

183

김인도

작성한 질문수 23

0

python java c 정보처리기사

답변 1

0

주말코딩

p = a;

이 부분이 빈 값(null)에서 a를 가리키라고 엎어친 것입니다.

 

코드를 순서대로 이해하실 수 있게 현실에 비유해보겠습니다.


 

null은 그냥 없다고 생각하신다고 하면,

포인터 변수(p)를 손가락이라고 생각해봅시다.

  1. 저는 지금 제 손가락을 가위모양으로 만들었습니다. 무언가를 가리키려고 합니다. (char *p) - 포인터 변수 탄생만 시켰다는 뜻. 정확히 말하면 방금 만든 손가락은 "char" 형태의 데이터만 가리킬 수 있게 만든 것임.

 

  1. 근데 일단 허공을 가리키고 싶습니다. ( = NULL)

안 가리켜도 되지 않냐고요? (그냥 char *p;만 선언) 네, 그래도 됩니다.

그런데 허공을 가리켜도 되죠. 개발자가 코드를 작성하는 마음대로 할 수 있습니다.


  1. 저기에 문자열 a가 탄생해있습니다. (char a[] = "Art";)

  2. 허공을 가리키고 있는 손가락으로 a를 가리키라고 명령합니다. ( p = a );

(여기서 질문)

Q. 왜 a의 주소를 넘겨줘야하는데 &a라고 안하고 그냥 a로 주나요?

A. C언어에서는 배열과 문자열은 이름 그 자체가 주소처럼 행동합니다. 이건 C언어의 문법 스펙이라 강제로 암기가 필요한 부분. 

 

  1. (결론) 자, 이제부터 제 손가락은 a의 첫부분을 가리키고 있습니다.

 

이해에 도움이 되셨을까요?

 

 



 

(미니퀴즈1) p의 값을 출력하면 뭘까?

#include <stdio.h>

int main() {
    char a[] = "Art";
    char* p = a;
    printf("%c\n", *p); // A
    return 0;
}

(*p) 정답은 %c로 출력했다는 가정에서 'A'. 포인터는 배열 맨 앞의 주소를 가리키고 있음

 

(미니퀴즈2) a의 값을 출력하면 어떻게 될까? %c와 %s일 때 다름.

#include <stdio.h>

int main() {
    char a[] = "Art";
    printf("%c\n", *a); // A
    return 0;
}

 위의 경우는 배열의 주소(배열 이름은 곧 주소처럼 취급가능)의 값이니 첫 글자인 A만 출력

 

 #include <stdio.h>

int main() {
    char a[] = "Art";
    printf("%s\n", a); // Art
    return 0;
}

(출력문에 들어가는 변수값에 * 별 없음 주의. 없어야 제대로 실행됨)

이 경우에는 메모리 주소를 주면서 %s로 출력하라고 해서 "Art" 전체가 출력.

 

(미니퀴즈3) A만 출력하는 3가지 방법을 얘기해라.

*a, *p, a[0]

문자열도 배열로 선언하기 때문에 배열처럼 인덱스로 접근하여 출력할 수 있습니다. (단, %c 형태로 출력 필요)

 

 

이것은 그냥 받아들이고 외우는 것이 좋습니다.

 

감사합니다.

 

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

51

2

26년 1회 실기 해설 강의

0

68

2

53번 4-1 자료 오류 있는 것 같습니다.

0

73

2

7번문제

0

60

2

C언어 변형문제 9번문제 Pdf 수정요청

0

48

2

메서드 오버드라드

0

51

2

실수

0

46

1

공부 우선순위 우선강의 알려주세요

0

90

1

생성자 호출순서 강의 10번 문제 30분대 질문입니다

0

49

2

25년 2회 기출 5:40 질문입니다.

0

43

2

모의고사1회 3번 파이썬문제

0

75

2

C언어 출제변형 6번 문제

0

50

2

c언어 출제변형 강의 질문

0

32

2

28:40

0

34

2

C :  언어 배열과  문자열 수업자료

0

31

2

파이썬 리스트, 딕셔너리 질문

0

43

2

모의고사 관련 질문 건

1

69

3

자료 내용 오류

0

64

2

정적 변수, 정적 메서드(static) v2

0

51

2

v1.2 와 v0.91 PDF

0

104

1

업캐스팅 (부모형태, 자식생성자)

0

51

2

정보처리산업기사 준비중입니다.

0

74

2

실기 D -6

0

105

2

(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다

0

60

3