C언어 이중 배열, 다차원 배열

2025. 1. 22. 16:29·잡다한 공부
반응형

 

각 배열의 첫 문자를 출력 한다면 ?

 

이중배열

#include <stdio.h>

int main() {
	const char* arr[2][2] = { {"Hello", "World"},{"Foo", "Bar"} };

	printf("%c\n", arr[0][0][0]);
	printf("%c\n", arr[0][1][0]);
	printf("%c\n", arr[1][0][0]);
	printf("%c\n", arr[1][1][0]);
}

 

실행결과

H
W
F
B

 

review 

✅ 출력문에서 arr[0][0][0] 을 보면, 우선 arr[0][0] 이 출력 하는 것은 Hello이다. 

| 그리고, arr[0][1] 같은 경우는 World를 출력한다. 

| 문제는 뒤에 있는 [0] 인데, printf 출력문을 보면 %c 로 문자 하나를 가져오라고 하고 있다. 

| 그래서 Hello 에서 [0] 을 가져온다고 생각하면 편하다. "Hello" 문자 배열에서 첫 번째 (인덱스 0)는 H이다. 

 

이중배열

#include <stdio.h>

int main() {
	const char* arr[2] = { "Hello", "World" };

	printf("%c\n", arr[0][0]);
	printf("%c\n", arr[1][0]);
}

 

실행 결과 

H
W

 

review 

✅ 위 코드도 마찬가지로, 배열은 2차원 배열이 아닌 1차원 배열이다. 

| 하지만, 출력에서 보면 2차원 배열의 주소의 값을 가져오는 것 처럼 보이는데, 

| 실행 결과를 보면 arr[0] = "Hello" 가 들어오고, 그 다음에 [0]은 문자열의 첫 번째 요소를 가져오는 것이다.

 

 

이중배열

#include <stdio.h>

int main() {
	const char* arr[3][3] = { {"apple", "banana", "cherry"}, {"dog", "elephant", "frog"}, {"grape", "hippo", "iguana"} };

	for (int i = 0; i < 3; i++) {
		printf("%s\n", arr[i][0]);
	}

	return 0;
}

 

실행 결과

apple
dog
grape

 

review

✅ 2차원 배열을 선언하고, 초기화 하였지만 출력하는 부분에 보면 두 번째 찾는 인덱스는 0으로 고정했습니다.

| arr[i] 만 먼저 보자면 

| arr[0] = {"apple", "banana", "cherry"} 

| arr[1] = {"dog", "elephant", "frog"}

| 형식으로 가져오는 것을 알 수 있습니다. 여기서 문제인 [0]으로 고정 되어 있는 것은 

| 큰 덩어리 묶음에서 첫 번째 인덱스 값을 가져오라는 의미입니다. 그래서 "apple" "dog" "grape" 가 출력됩니다. 

 

quiz

☑️ arr[0][1]의 값은 ? 

| 

☑️ arr[1][0]의 값은 ?

| 

☑️ arr[1][2]의 값은 ?

| 

☑️ arr[2][1]의 값은 ?

| 

 

 

2차원 배열은 아래와 같이 이해할 수 있으며, 실제로 저렇게 저장되는 것은 아닙니다.

  0 1 2
0 apple banana cherry
1 dog elephant frog
2      

 

 

위 quiz에 대한 정답은 순서대로 banana, dog, frog, hippo 입니다. 

 

 

출처 | 주말코딩 정보처리기사

728x90
반응형

'잡다한 공부' 카테고리의 다른 글

[정보처리기사] 정처기 실기 전위,후위, 증감 연산  (0) 2025.02.18
C언어 goto문과 continue문  (4) 2025.01.31
ASCII CODE  (2) 2025.01.18
커스텀 자료형 typedef  (6) 2025.01.18
C언어 구조체 struct, 구조체 포인터  (4) 2025.01.17
'잡다한 공부' 카테고리의 다른 글
  • [정보처리기사] 정처기 실기 전위,후위, 증감 연산
  • C언어 goto문과 continue문
  • ASCII CODE
  • 커스텀 자료형 typedef
dzaaling
dzaaling
  • dzaaling
    huigrowthdiary
    dzaaling
  • 전체
    오늘
    어제
    • 분류 전체보기 (31)
      • language (6)
        • Java (6)
      • data base (1)
        • Oracle (1)
      • frontend (3)
        • HTML5 (0)
        • CSS3 (0)
        • Javascript (3)
      • backend (3)
        • Spring (3)
      • 코딩테스트 (2)
      • 잡다한 공부 (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래밍
    정처기 데이터베이스
    java
    스프링부트
    정처기
    후위식
    orcale 11g
    C
    정처기 전위식
    백준
    vscode 플러그인
    쿼리파라미터
    커스텀자료형
    정처기 실기
    정처기 매크로
    자바스크립트
    인텔리제이오류
    정보처리기사
    자바
    중위식
    부분 함수 종속
    정처기 비트연산
    2정규화
    c언어
    코린이
    정처기 증감
    전위식
    코딩테스트
    정처기 파이썬
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dzaaling
C언어 이중 배열, 다차원 배열
상단으로

티스토리툴바