inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

다차원 배열과 문자열 배열

다차원 배열 입력 구문

해결된 질문

59

dhkdxo12

작성한 질문수 37

0

다차원 배열과 문자열 배열 과정 챕터

19:24에서는 입력 구문에서

int arr[3][3]={1, 2, 3}, {4, 5, 6}, {7, 8, 9}

20:28에서는 입력 구문에서

const char *arr[2][2]={{Hello", "World"}, {"app", "dev"}};

 

위 2개 입력 구문의 차이에서 첫번째는 왜 arr[3][3]이고, 두번째는 *arr[2][2]인지 모르겠습니다.

python java c 정보처리기사

답변 2

0

주말코딩

숫자의 차이를 모르겠다는 의미이실까요 아니면 데이터의 타입이 다른 것을 질문하시는 걸까요?

 

우선 앞이 [3][3], 뒤가 [2][2]인 것은 배열 안에 3개짜리 요소가 3개씩 있고, 배열 안에 2개의 요소가 2개씩 있어서 그렇게 정의했다는 것은 쉽게 아실 수 있을 것입니다.

 

질문이 조금 이상한데, 별표가 왜 붙는지를 물어보시는 것이면 앞에 데이터 형태까지 가져오셔야 합니다.

int arr는 "정수형태"의 요소가 배열로 들어간다는 뜻이고, char *arr은 문자를 가리킬 수 있는 포인터를 여러 개 담는다는 이야기입니다.

 

char *arr일 때 배열에는 실제로 저 값이 들어가는 것이 아닙니다. 이것을 헷갈리시면 안됩니다.

실제 배열에는 저 문자열을 가리키는 char를 가리킬 수 있는 포인터를 담는 것입니다.

C언어에서는 여러 개의 문자가 합쳐진 문자열을 데이터로 담기 위해서는 문자열 시작 주소를 가지고 있어야 합니다. 그럴려면 포인터형태를 취해서 메모리 주소를 담습니다.

그렇기 때문에 두 개의 형태가 다른 것입니다.

 

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

 

0

dhkdxo12

int 같은 숫자배열은 바로 값이 들어가서 *가 없고

char 같은 문자열은 바로 값이 들어갈 수 없으니 *를 붙이는건가요?

0

주말코딩

네 맞습니다. 정확히 말하면 여러 개의 문자가 뭉쳐져 있는 문자열을 넣어야하기 때문에 가장 앞의 메모리 주소를 담는 것입니다.

0

인프런 AI 인턴

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

두 가지 배열 선언 방식의 차이에 대해 설명드리겠습니다. 변수 선언에서 나타나는 차이는 데이터의 성격과 저장 방법에 기인합니다.

  1. 정수형 배열 선언 (int arr[3][3]):

    • int arr[3][3]는 3x3 정수형 배열로, 각 요소는 직접 정수 값을 저장합니다. 이러한 배열은 메모리 내의 연속적인 공간에 정수 데이터를 저장하는데 사용됩니다.
  2. 문자열 포인터 배열 선언 (const char *arr[2][2]):

    • const char *arr[2][2]는 문자열을 가리키는 포인터의 2x2 배열입니다. 여기서 char *는 문자열 데이터를 포인터를 통해 참조하는 방식입니다. 문자열은 메모리의 다른 곳에 저장되고, 배열의 각 포인터는 이러한 문자열로의 주소를 저장합니다.
    • 문자열 배열에서는 각 문자열이 배열에 직접 저장되지 않고, 각 자리에는 문자열의 시작 위치를 가리키는 포인터가 저장됩니다.

문자열을 다룰 때 포인터를 사용하는 이유는 C 언어 특성상 문자열 리터럴이 상수 영역에 저장되기 때문입니다. 데이터의 직접적인 저장보다 포인터를 통한 위치 참조 방식을 사용하여, 메모리 효율성을 높이고 문자열 조작을 보다 쉽게 할 수 있습니다.

관련해서 도움될 링크를 제공합니다:
- 다차원 배열과 문자열 배열 22분 쯤 - 배열 선언과 포인터의 차이에 대한 설명이 포함되어 있습니다.

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

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

0

42

2

26년 1회 실기 해설 강의

0

59

2

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

0

72

2

7번문제

0

59

2

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

0

47

2

메서드 오버드라드

0

47

2

실수

0

46

1

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

0

88

1

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

0

48

2

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

0

42

2

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

0

74

2

C언어 출제변형 6번 문제

0

50

2

c언어 출제변형 강의 질문

0

31

2

28:40

0

33

2

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

0

29

2

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

0

42

2

모의고사 관련 질문 건

1

69

3

자료 내용 오류

0

64

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