문제

해설

  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 출력

결과(온라인 실행)

5 7

참고

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

[Linux] 포트 사용하는 프로세스 찾기

## 4000번 포트를 사용하는 프로세스를 찾고 Kill하는 예제lsof -i:PORT_NUMBER```shlsof -i:4000```![/images/lsof.png](/images/lsof.png)kill -9 PROCESS_NUMBER```...… Continue reading