일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 변수분리#동차 미분방정식#완전 미분방정식
- 여인수 행렬
- 그람-슈미트 과정#gram-schmidt process
- 선형변환#contraction#expansions#shears#projections#reflection
- 부분 분수분해
- 상태천이행렬#적분인자법#미정계수법#케일리-헤밀톤 정리
- dirichlet
- 선형 상수계수 미분방정식#lccode#sinusoidal input
- 계수내림법#reduction of order#wronskian#론스키안#아벨항등식#abel's identity
- 미분방정식 #선형 미분방정식 #상미분 방정식
- 직교행렬#정규직교행렬#orthonormal#reflection matrix#dcm
- 최소자승#least-square#목적함수#양한정#정점조건#최소조건
- reflection matrix
- linespectra#feurierseries#푸리에 급수
- 비제차#제차해#일반해#적분인자#적분인자법#homogeneous sol#nonhomogeneous sol#integrating factor
- 추정문제#normal equation#직교방정식#정사영#정사영행렬#정사영 변환
- 내적#duality#쌍대성#dot product
- 가중 최소제곱법
- 푸리에 정리
- 선형독립#기저벡터#선형확장#span#basis
- 멱급수법
- 2계미방#모드#mod#특성방정식#characteristic eq#제차해
- weighted least-squares
- 베르누이 미분방정식
- 선형시스템연산자#라이프니츠 법칙#fundamental theorem of algebra#erf
- 오일러-코시 미방#계수내림법
- 푸리에 급수
- 여인자
- 내적 공간#적분
- 정규직교행렬
Archives
OnlyOne
Function&Array 본문
본 포스팅은 한동대학교 21학번 과학기술전문사관 후보생 최윤석 선배님의 C언어 교육자료로 제작되었음을 알려드립니다. 감사합니다.
Function&Array
Intro
*Function
함수란 코드 내부에서 반복되는 구문이나 특정 의미가 있는 기능을 가지는 코드를 모아두는 것이다.
반환타입 함수이름(인자자료형1 인자1, 인자자료형2 인자2, …)
{
코드
return 함수반환값;
}
Function&Array
1. 배열이 인자로 들어갔을 때는 배열의 주솟값이 전달된다.
void array_input(int array[], int size) //배열의 주솟값이 전달되므로, 배열의 크기를 같이 받는다.
{
...
}
ex)
void test(int array[5])
{
printf("%d\n", sizeof(array));
}
//8(64bit 운영체제) or 4(32bit 운영체제)
이전에 sizeof를 이용한 배열 크기 측정은 함수에서는 불가능하다!
2. 배열은 반환할 수 없다.
int[] return_array()
{
int array[5] = {1, 2, 3, 4, 5};
return array;
}//빌드에러 발생
배열 반환
배열을 반환하기 위해서 포인터로 입력된 배열로 직접 값을 수정해야 한다.
#include <stdio.h>
void set_array(int dst[5])
{
dst[0] = 1;
}
int main()
{
int array[5] = {0};
printf("Before\n");
for(int i = 0; i < 5; i++)
printf("%d\n", array[i]);
set_array(array);
printf("After\n");
for(int i = 0; i < 5; i++)
printf("%d\n", array[i]);
}
일반적으로 입력으로 들어가는 배열은 const 키워드를 추가하여 함수 내에서 변하지 않음을 알려준다.
#include <stdio.h>
void set_array(const int src[5], int dst[5]) //반환용 배열
{
for(int i = 0; i < 5; i++)
dst[i] = src[i] + 1;
}
int main()
{
int array[5] = {0};
int result[5];
set_array(array, result);
for(int i = 0; i < 5; i++)
printf("%d\n", result[i]);
}
'Control Engineering > C Programming' 카테고리의 다른 글
Preprocessor (0) | 2024.09.05 |
---|---|
Memory&Pointer (0) | 2024.09.05 |
배열(Array) 기초 (0) | 2024.09.04 |
Practice[MAF] (1) | 2024.09.04 |
Practice[Integral] (0) | 2024.09.04 |