inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

데이터 참/거짓 강의 질문

해결된 질문

252

김다훈

작성한 질문수 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

39

2

26년 1회 실기 해설 강의

0

54

2

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

0

70

2

7번문제

0

59

2

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

0

47

2

메서드 오버드라드

0

47

2

실수

0

46

1

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

0

87

1

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

0

48

2

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

0

40

2

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

0

73

2

C언어 출제변형 6번 문제

0

50

2

c언어 출제변형 강의 질문

0

31

2

28:40

0

33

2

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

0

29

2

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

0

41

2

모의고사 관련 질문 건

1

68

3

자료 내용 오류

0

63

2

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

0

48

2

v1.2 와 v0.91 PDF

0

101

1

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

0

51

2

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

0

74

2

실기 D -6

0

105

2

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

0

57

3