문제

#include <stdio.h>

void print_r(int a[], int n);

int main(void)
{
    int a[] = {10, 20, 30, 40, 50};
    print_r(a, 5);
    return 0;
}
void print_r(int a[], int n)
{
    int *p = a + 1;
    while (p >= a)
    printf("%d\n", *p--);
}

해설

  1. print_r함수의 첫번째 인자로 a배열의 시작 주소를 넘겨준다.
    1. score[3] = 4, sum = 4
    2. score[4] = 5, sum = 9
      • 9 출력
    3. switch문에서 break가 없으면 계속 다음으로 넘어간다. 위 코드에서는 default: 로 간다.(case에 조건이 맞지 않으면 무조건 defalt로 간다.) 만약 case에서 break 혹은 return을 하면 switch문을 빠져나온다.
    4. default에서 score[5]에는 값이 들어있지 않다.(쓰레기값) 값이 없으므로 sum += score[i];연산은 이뤄지지 않고 printf한다. sum의 값이 변하지 않았으므로 9 출력.
      • 9 출력

결과(온라인 실행)

20
10

참고

  • c언어는 절차지향형 언어이므로 main함수 위에 함수를 선언하고 main함수 아래에 함수를 만들어서 사용하거나
  • 함수를 main함수 위에 만들어서 사용하면 선언하지 않아도 된다.

아래 두 코드는 같다.

#include <stdio.h>

void print_r(int a[], int n);

int main(void)
{
    int a[] = {10, 20, 30, 40, 50};
    print_r(a, 5);
    return 0;
}
void print_r(int a[], int n)
{
    int *p = a + 1;
    while (p >= a)
    printf("%d\n", *p--);
}
#include <stdio.h>

void print_r(int a[], int n)
{
    int *p = a + 1;
    while (p >= a)
    printf("%d\n", *p--);
}

int main(void)
{
    int a[] = {10, 20, 30, 40, 50};
    print_r(a, 5);
    return 0;
}

[한국어, EN] React Native import 환경 설정(import setting)

* [1. 프로젝트 구조(Project Structure)](#1-프로젝트-구조project-structure)* [2. 동작 안하는 예제(Not work example)](#2-동작-안하는-예제not-work-example)* [3. 동작 하는...… Continue reading