inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

함수(메서드) 선언과 호출

데이터 참/거짓 강의 질문

해결된 질문

268

김다훈

작성한 질문수 11

0

문자열 배열에서 \0(null) 을 붙임으로써 문자열이 끝났음을 알 수 있다고 하셨는데 그럼 첫번째 문자열배열 str1의 경우엔 왜 널값이 안붙나요? 배열에 각각 문자가 하나씩 들어가는것과 문자열이 한번에 한칸에 다 들어가는 차이 때문인가요? 명확한 해설 부탁드려요.

python java c 정보처리기사

답변 3

0

주말코딩

아, 데이터 참/거짓 영상이신데

질문 자체가 영상 <함수(메서드) 선언과 호출>에 연계되어 있어서 헷갈렸습니다.

 


 

문자열로 선언하는 경우 (배열 아니고) "Hello"로 하는 경우에는 알아서 '\0'이 들어가있습니다.

하지만 배열로 하나씩 넣는 경우에는 보통 마지막에 의도적으로 '\0'을 넣어서 문자열의 끝을 만들어줍니다.

(예를 들어 배열 100칸짜리를 만들어 두고, 5개만 할당했을 때는 '\0'을 넣어서 끝을 알려주기 위해서 그렇게 할 수 있습니다.)

그런데 아래와 같이 하면 sizeof 문자열 했을 때 5가 나오면서 전체가 정상적으로 출력이 되긴합니다.

#include <stdio.h>

int main() {
    // 문자 배열을 선언합니다.
    char str[] = {'h','e','l','l','o'};
    
    // 결과를 출력합니다.
    printf("%d\n", (int)sizeof(str));
    printf("%s\n", str);
    
    return 0;
}

그러니까 엄밀히 말하면, 쓰지 않아도 정상적으로 동작은 합니다.

하지만 저렇게 디테일하게는 문제에 나오지 않으니, '\0'을 안 넣어도 동작은 하는구나 정도로 알고 계시면 되겠습니다.

0

김다훈

2분초반이요~ 2분 2초쯤 str1[]="Hello"

str3[] 차이요

0

주말코딩

혹시 영상에서 몇 분 몇 초 대일까요?

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

0

43

2

조건 반복문 질문: for 문 ?

0

59

1

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

0

77

1

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

0

71

2

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

0

86

2

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

0

143

2

262 정처기 실기 C언어코딩

0

45

1

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

0

77

2

static 변수 질문입니다.

0

60

2

파이썬 4강 질문입니다.

0

67

2

모의고사 1회 3번문제

0

87

3

41강 30:10

0

66

2

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

0

86

2

부모의 생성자 관련 질문

0

64

2

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

0

87

3

41강 11:23

0

58

2

4강파이썬 질문입니다

0

53

2

try-catch 핸들러명

0

64

2

36강 3:48

0

62

2

35강 18:27

0

65

2

자식 코드 내 super() 생략

0

59

2

출력질문

0

73

2

31강 4:06

0

64

2

파이썬 학습자료가 강의 자료와 다릅니다.

0

94

3