Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 티스토리 커버이미지 변경
- JavaScript
- getchar()
- 3강
- eslint 쉼표필요 오류
- 오류
- 원 둘레
- c
- Chapter3
- 합
- putchar()
- 풀이
- 3판
- 평균
- 실습예제
- 3장
- 쉼표필요
- 비트마스크
- 백엔드 개발자 #로드맵
- ㅔㄴ트 안잉
- eslint
- 연습문제
- 점프 투 파이썬 #패키지 # 비전공자
- perpectC
- 정답
- perpect C
- PERPECT
- () (+) 차이
- 원 면적
- +연산자 의미
Archives
- Today
- Total
옥수수와 식빵 그리고 코딩
C | 배열 포인터를 함수의 인수(파라미터)로 전달 본문
일차원 정수 배열을 함수로 전달하는 예제
#include <stdio.h>
void test(int* array, int index);
int main(void) {
int array[3] = { 111, 222, 333 };
// *** 포인터 변수 만들어서 ***
// 포인터 변수인 ptr 에, array 라는 배열의 첫번째 요소의 번지가 대입
int* ptr = array;
// int* ptr = &array[0]; // 이렇게 해도 똑같음
test(ptr, 3); // test() 함수에, 배열 포인터와, 요소 개수 전달
// 포인터 변수 ptr 을 만들지 않고 그냥
// test(&array[0], 3);
// 이렇게 직접 첫번째 요소의 주소를 넘겨주어도 됨
// *** 가장 간단한 방법 ***
// 배열을 함수의 인수로 넘기면 항상 첫번째 요소의 주소만 넘어가므로
// test(array, 3);
// 이렇게 해주어도 됩니다. 즉, 배열의 이름은, 배열 첫번째 요소의 번지입니다.
return 0;
}
void test(int* array, int index) {
for (int i = 0; i < index; i++)
printf("[%d] = %d\n", i, array[i]);
}
/* 출력 결과:
[0] = 111
[1] = 222
[2] = 333
*/
출처
http://mwultong.blogspot.com/2006/11/c-array-pass-to-function.html
2차원 배열을 함수 인수로 전달
http://mwultong.blogspot.com/2006/11/2-2-dimensional-array-pass-to-function.html
#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]);
}
}
}
'C > perpect C' 카테고리의 다른 글
15장 파일처리 연습문제 (0) | 2022.01.12 |
---|---|
구조체 궁금한 부분 - *변수는 값입력을 받을 수가 없나? (0) | 2022.01.08 |
12장 연습문제 - 문자열 (0) | 2022.01.08 |
11장 연습문제 포인터 기초 (0) | 2022.01.08 |
10장 변수 유효범위 연습문제 (0) | 2022.01.05 |
Comments