컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 윈도우 환경변수 복사하여 파일로 저장/만들기: Windows Environment Vari...Java/자바/수학] 다각형 내각 각도 구하기; Regular Polygon AngleC언어] 배열 포인터를 함수의 인수(파라미터)로 전달; Array Pass to a Fun...Vim (Vi)에디터] 구문강조/문법강조 명령어, vimrc 설정법; Syntax High...Vim (Vi)에디터] 파일의 맨 첫 줄/마지막 라인으로 이동 핫키; Go Top Bott...Vim Vi 블록 선택, 복사, 붙이기, 칼럼 영역 선택하기; Select Copy Pas...Linux/리눅스] bash 히스토리(History)기능 강화(검색) 설정; History...C언어] 1차원 배열 선언, 배열 초기화 예제: One-Dimensional Array I...텍스트파일 인코딩/언어 알아내기, 자동 판단; Encoding Auto-Detect Eme...일본어 고전 소설 원문 무료로 공개; 아오조라 문고 Aozora Bunko

2차원 배열, 함수 인수(파라미터)로 전달: 2-Dimensional Array, Pass to a Function

Monday, November 06, 2006

배열을 함수의 파라미터로 넘겨주면 배열이 통째로 카피되어 넘어가는 것이 아니라, 배열의 가장 첫번째 요소의 주소만 넘어갑니다. 그렇기에 결국 자동으로 포인터로 전달됩니다.


C언어] 이차원 정수 배열, 함수에 전달 예제


파일명: 0.cpp
#include <stdio.h>

// 상수를 정의해야 함
#define ROWS 5
#define COLS 4

void test(int array[][COLS], int rows, int cols);



int main(void) {

  // 2차원 정수 배열 foo의 선언과 초기화
  int foo[ROWS][COLS] = {
     { 662,   7,   4,  74 },
     {   8, 396, 299,  95 },
     {  66,  73,  86,   0 },
     { 116,  26, 586,  42 },
     {  84,   7,  41,  11 }
  };


  test(foo, ROWS, COLS);

  puts("");  // 줄바꿈

  return 0;
}


void test(int array[][COLS], int rows, int cols) {
  for (int i = 0; i < rows; i++) {    // 2차원 배열의 요소들 하나씩 출력
    puts("");  // 줄바꿈
    for (int j = 0; j < cols; j++) {
      printf("%d ", array[i][j]);
    }
  }
}



출력 결과:
662 7 4 74
8 396 299 95
66 73 86 0
116 26 586 42
84 7 41 11




다음과 같이 좌표의 범위를 좁혀 주면
test(foo, 3, 3);

662 7 4
8 396 299
66 73 86

이렇게, 배열의 모든 요소가 아닌, 지정된 범위만 출력됩니다.



▶▶ C언어] 2차원 배열 만들기, 초기화, 출력; Two Dimensional Array

▶▶ C언어] 배열 포인터를 함수의 인수(파라미터)로 전달; Array Pass to a Function

☞ C/C++

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top