※ switch 문

보통 if문 대신 사용하며 case를 나눌 필요가 있을 때, if-else를 여러번 쓰기 힘들 때 사용한다.

switch (n) // n은 정수형 변수로 전달되는 인자정보, n에 지정된 값에 따라 case 영역 실행
{
    case 'M':
        // 조건 입력
        break;
    case 2:
        // 조건입력
        break;
    default:
        // else문과 비슷한 역할
}

이때, break를 하지 않으면 다음 break가 있는 case문까지 같이 실행되기에 적는 것이 좋다.

§ break와 continue

break: 가장 가까운 반복문을 탈출한다.
continue: 실행위치와 상관없이 반복문의 조건검사위치로 이동한다.
          이때, 이후부터는 continue는 생략하고 재실행한다.

 

 

 

※ while 문 vs for 문

보통 while문은 특정 종료조건이 나타나기 전까지의 지속적인 실행을 위해,

보통 for문은 반복횟수가 정해져 있는 경우에 많이 사용된다.

 

※ 비트 연산자

메모리에 할당된 정수값을 bit단위로 논리연산을 실행하기 위해 사용한다.

 

 

 

 

 

 

 

 

※ 함수 선언

[함수 return 타입] [함수 이름] (인자) {
    /*
     * 
     */
}

인자 (argument): 함수 호출 시 전달되는 "값"

매개변수(parameter): 그런 인자를 받는 "변수"

 

 

 

 

 

 

※ 지역변수와 전역변수, static과 block scope

지역변수(local variable): 중괄호에 의해 형성되는 영역안에 존재, "스택"이라는 메모리 영역에 할당
전역변수(global variable): 초기화를 하지 않으면 0으로 초기화되며 많이 사용하면 효율이 떨어진다.

 

§ 지역변수와 Block Scope

특정함수, 명령문의 블록안에 선언된 변수는 블록범위(Block Scope)밖에서는 사용이 불가능하다!

int a = 1;

{
    a = 2; // a는 2로 초기화 됨
}

{
    int a = 5; // 앞선 a와는 전혀 다른 a
    // Block scope가 끝나면 사라짐
}

{
    a++; // 여기까지 a값은 2, 아래줄 실행 시 a=3으로 증가
}

printf("%d", a); // 3 출력

 

 

§ static: "한 함수 내"에서 "지역변수의 전역변수화"를 해주는 tool

선언된 함수내에서만 접근 가능 (지역변수의 특징)
1회만 초기화, 종료전까지 메모리 공간에 저장 (전역변수 특징)
★ 전역변수와 달리 Block Scope 내부에서만 접근 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts