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

 
(사용자 3명의 중간 판 33개는 보이지 않습니다)
2번째 줄: 2번째 줄:
;C언어 2차원 배열 파라미터로 넘기기
;C언어 2차원 배열 파라미터로 넘기기


==int arr[3][3]==
==int a[3][3] ★★==
<source lang='c'>
<syntaxhighlight lang='c' run>
#include<stdio.h>
#include<stdio.h>
void print(int arr[3][3]) {
void print(int a[3][3]) {
     for(int i=0; i<3; i++) {
     for(int i=0; i<3; i++) {
         for(int j=0; j<3; j++) {
         for(int j=0; j<3; j++)  
            printf("%d ", arr[i][j]);
{
         }
printf("%d ", a[i][j]);
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 |
print(arr);
}
</syntaxhighlight>
 
==int a[][3] ★★==
<syntaxhighlight lang='c' run>
#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("| ");
         printf("| ");
     }
     }
}
}
int main() {
int main() {
   int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   print(a); // 1 2 3 | 4 5 6 | 7 8 9 |  
   print(arr); // 1 2 3 | 4 5 6 | 7 8 9 |  
}
}
</source>
</syntaxhighlight>


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


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


==같이 보기==
==같이 보기==
* [[void*]]
* [[C언어 2차원 배열]]
* [[C언어 2차원 배열]]
* [[C언어 1차원 배열 파라미터로 넘기기]]
* [[C언어 3차원 배열 파라미터로 넘기기]]


[[분류: C언어 배열]]
[[분류:C 배열]]

2023년 7월 21일 (금) 23:03 기준 최신판

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]);
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 | 
print(arr);
}

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 }}