"C언어 2차원 배열 파라미터로 넘기기"의 두 판 사이의 차이

33번째 줄: 33번째 줄:
   int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   print(a); // 1 2 3 | 4 5 6 | 7 8 9 |  
   print(a); // 1 2 3 | 4 5 6 | 7 8 9 |  
}
</source>
==int* arr==
<source lang='c'>
#include<stdio.h>
void print(int* arr) {
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            printf("%d ", *(arr+i*3+j));
        }
        printf("| ");
    }
}
int main() {
  int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
  print((int*)a); // 1 2 3 | 4 5 6 | 7 8 9 |
}
}
</source>
</source>

2019년 3월 24일 (일) 20:05 판

1 개요

C언어 2차원 배열 파라미터로 넘기기

2 int arr[3][3]

#include<stdio.h>
void print(int arr[3][3]) {
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("| ");
    }
}
int main() {
   int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   print(a); // 1 2 3 | 4 5 6 | 7 8 9 | 
}

3 int arr[][3]

#include<stdio.h>
void print(int arr[][3]) {
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("| ");
    }
}
int main() {
   int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   print(a); // 1 2 3 | 4 5 6 | 7 8 9 | 
}

4 int* arr

#include<stdio.h>
void print(int* arr) {
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            printf("%d ", *(arr+i*3+j));
        }
        printf("| ");
    }
}
int main() {
   int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   print((int*)a); // 1 2 3 | 4 5 6 | 7 8 9 | 
}

5 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}