매개변수 - 2차원 배열

2020. 1. 28. 14:13·Language/C++

N차원 배열 매개변수

 

설명을 간단히 해드리겠습니다.

일반적으로 일차원 어레이를 반환할 때는 다음과 같이 진행합니다.


void print(int a[10]){
	//bla~~~bla!!
}
int main(){
	int k[10];
    memset(k,1,sizeof(k));
    print(k);
}

2차원 배열도 다음과 같습니다 하지만 '[]'를 한번더 추가해준다 라고 생각을 해주시면 편합니다.

2차원 배열의 형태를 그대로 유지하면서 첫 번째 항목만 숫자를 적지 않고 [ ][숫자]의 형태로 배열을 넘겨받아서 그대로 사용하면 됩니다.

 


void print(int a[][10]){
	//bla~~~bla!!
}
int main(){
	int k[10][10];
    memset(k,1,sizeof(k));
    print(k);
}

 

void Print(char (*str_temp2)[16], int cnt)
{
    // print
    for (int i = 0; i < cnt; i++){
        printf("%s\n", *(str_temp2 + i));
    }
}

int main()
{
    // 문자열을 저장하는 2차원 배열 
    char str_temp[[3][16] = { "apple", "software", "new" };
    Print(str_temp, 3);
    return 0;
}

하지만 이렇게 포인터 표기법으로 받으면 배열의 각 항목을 사용할 때 연산자 우선순위를 맞추기 위해서 괄호가 많이 사용됩니다. 예를 들어, 두 번째 항목으로 저장된 'software' 문자열의 'f' 문자에 접근하려면 아래와 같이 포인터를 구성해야 합니다.

 

void Print(char (*str_temp2)[10], int cnt)
{
    // 두 번째 문자열의 세 번째 위치에 있는 't' 문자를 temp 변수에 대입!
    char temp = (*(str_temp2 + 1))[2];
}

//하지만 이런 경우 일반 포인터 보다 더 어려운 표현이 되기 때문에 
//아래와 같이 포인터 표기를  배열로 해주는 것이 좀 더 좋습니다. 

void Print(char (*str_temp2)[10], int cnt)
{
    
    char temp = str_temp2[1][2];
}

//Print함수에 사용된 char (*str_temp2)[10] 어렵기 때문에 아래와 같이 
//이 표현을 단순하게 적을 수 있도록 매개 변수에 한해서 char str_temp2[][10] 과 같은 표기를 추가로 제공합니다.

void Print(char str_temp2[][10], int cnt)
{
    
    char temp = str_temp2[1][2];
}

그렇다면 3차원 배열은 어떤 방식으로 받게 될까요??

상상하시는 그대로 입니다. '[][n][m]' 으로 넘겨 주면 됩니다. 

 

Funny C++ :)

'Language > C++' 카테고리의 다른 글

C++ - 입출력 효율성 증가시키는 방법  (0) 2020.03.30
소수 구하기 (에라토스테네스의 체)  (0) 2020.03.19
C++ - Array Size  (0) 2020.03.04
C++ - 범위 기반 for문 (feat: range based for statement)  (0) 2020.03.04
C++ - Compare(feat: sorting, algorithm)  (0) 2020.03.04
'Language/C++' 카테고리의 다른 글
  • 소수 구하기 (에라토스테네스의 체)
  • C++ - Array Size
  • C++ - 범위 기반 for문 (feat: range based for statement)
  • C++ - Compare(feat: sorting, algorithm)
dev.wookii
dev.wookii
Effort Maketh Happiness
  • dev.wookii
    습관처럼
    dev.wookii
  • 전체
    오늘
    어제
    • 분류 전체보기 (295)
      • Language (35)
        • python (13)
        • C++ (22)
      • Kaggle (4)
      • Algorithms (112)
        • BOJ (58)
        • programmers (43)
        • SWExpertAcademy (2)
      • Certification (38)
        • Adsp (0)
        • Sqld (28)
        • 정처기 (9)
        • 빅데이터 분석기사 (0)
      • Data Analysis & ML (6)
      • 금융 & 디지털 (65)
      • CS (32)
        • DB (2)
        • SE (3)
        • Web&JSP (1)
        • Network (11)
        • OS (2)
        • Linux&Unix (6)
        • Server (1)
        • UX,UI (1)
        • 보안 (5)
      • 기타 (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    programmers
    시뮬레이션
    Ebay korea #coding test
    funny algorithms
    2020 KAKAO
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.wookii
매개변수 - 2차원 배열
상단으로

티스토리툴바