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

Jmnote (토론 | 기여)님의 2019년 3월 24일 (일) 20:52 판

1 개요

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

2 int a[3][3] ★★

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

3 int a[][3] ★★

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

4 int (*a)[3] ★

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

5 int* a

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

6 void* a ★★

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

7 같이 보기

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