본문 바로가기
반응형

C언어/함수7

[C언어] call-by-value vs call-by-reference call-by-value 는 함수에서 값을 입력받는 것을 말합니다. 일반적인 함수에서 사용하는 방법입니다. call-by-reference 는 함수에서 주소값을 입력받는 것을 말합니다. 함수 밖에서 정의된 변수 주소에 직접 접근하여 변수 값 등을 변경하고자 할 때 사용합니다. 아래 문제를 참고하세요. https://bigpicture123.tistory.com/420 [C언어 코딩문제] 함수를 이용한 배열 원소 출력 문제 배열과 자연수 n을 입력하면, 해당 배열에서 n 번째의 원소를 출력하는 함수를 정의하시오. 정답 #include void myfun(int *yourarr,int num) { printf("%d",yourarr[num-1]); } int main() { int yourarr[5].. b.. 2022. 7. 6.
[C언어 함수의 인자로 배열 입력받기 배열의 값을 함수 인자로 넣는 것을 불가능하다. 포인터 변수를 이용하여 배열 인자의 주소값은 받을 수 있다. 입력받은 주소값을 이용하여 배열의 값에 접근하는 것은 가능하다. 아래 예시는 배열의 주소를 입력받아 배열 값을 출력하는 함수이다. #include void PrintArr(int *p_ar,int length) { int i; for(i=0; i < length; i++) { printf("%d\n",p_ar[i]); } } int main(void) { int ar[3]={1,2,3}; PrintArr(ar,sizeof(ar)/sizeof(int)); } 2022. 3. 31.
[C언어] 재귀함수를 이용한 팩토리얼 함수 만들기 재귀함수를 이용하여 팩토리얼 함수를 만들어보면 아래와 같습니다. #include int factorial(int n) { if(n==0) return 1; else return n * factorial(n-1); } int main(void) { printf("5!=%d",factorial(5)); } 아래는 실행결과입니다. 2022. 3. 29.
[C언어] 재귀함수 재귀함수는 함수 안에 자기 자신을 호출하는 함수를 말합니다. 아래 예시에서 MyRecur 이 재귀함수입니다. #include void MyRecur(void) { printf("Recursive call! \n"); MyRecur(); } int main(void) { MyRecur(); } 위 코드를 실행할 경우 "Recursive call!" 이 무한히 출력됩니다. 2022. 3. 28.
[C언어] 반환값도 없고 인자도 없는 함수 C언어에서 함수를 선언할 때 함수 이름 앞에 반환 형식을 쓰고 소괄호 안에는 입력값인 인자를 씁니다. int MyFun(int num) { } 반환값도 업고 인자도 없는 함수를 정의할 수 있습니다. 아래와 같이 void 를 사용하면 됩니다. void MyFun(void) { } 아래는 예시입니다. #include void OnlyPrint(void) { printf("안녕 난 반환값도 없고 인자도 없어"); } int main() { OnlyPrint(); } 실행 결과는 아래와 같습니다. 2022. 3. 28.
[C언어] 반환값이 없는 함수 C언어에서 함수를 선언할 때 함수 이름 앞에 반환 형식을 씁니다. int main( ) { } 반환값이 없는 함수를 정의할 때는 반환형식을 쓰는 자리에 void 라고 써주시면 됩니다. void 는 '텅 빈' 이라는 뜻입니다. 아래는 예시입니다. #include void OnlyPrint(int num) { printf("입력값: %d",num); } int main() { OnlyPrint(3); } 2022. 3. 18.
[C언어] 함수만들기 (두 값의 평균) 두 값의 평균을 계산해주는 mean2 함수를 만들어봅시다. int mean2 (int num1, int num2) { return (num1+num2)/2; } mean2 앞의 int 는 반환형입니다. 함수의 결과를 int로 반환하겠다는 의미입니다. 함수를 한번 사용해봅시다. #include int mean2 (int num1, int num2) { return (num1+num2)/2; } int main() { int mymean; mymean=mean2(5,1); printf("%d",mymean); } 2022. 3. 17.
반응형