Programming/C

C언어 - 변수(Variable)와 연산자(Operator)

JunsuKim 2021. 9. 13.
728x90

변수 : 값을 저장할 수 있는 메모리 공간에 붙은 이름 또는 메모리 공간 자체

수학에서의 방정식(2x + 4 = y)이 있다고 하자. 여기서 임의의 값을 대입할 수 있는 문자를 변수라고 한다.

C언어에서의 변수도 이와 같은 역할을 한다. 따라서 변수를 선언하면, 그 변수명을 통해 값의 저장 및 참조, 저장된 값의 변경이 가능하다.

int main(){
    int num; // num이라는 이름의 변수를 선언
    . . . .
}

여기서 num은 변수의 이름이고, int는 num이라는 변수의 저장타입이다.

int main(){
    int num;
    num = 10;
    printf("%d", num); // 출력: 10
    return 0;
}

위의 코드에선 num변수를 선언한 후 10이라는 값을 저장한다. 따라서 출력을 하게 되면 10이 출력되는 것을 확인할 수 있다.

 

선언된 변수에 처음 값을 지정하면 변수를 "초기화"했다 한다. 초기화 이후 값을 변경하고 싶다면 변수에 새로운 값을 저장하면 된다.

int main(){
    int num = 10;
    num = 20;
    printf("%d", num); // 출력: 20
}

변수를 선언하고 초기화를 하지 않으면 쓰레기 값(아무 의미가 없는 값)이 저장된다.

따라서 변수를 선언할 때는 0으로 초기화를 한 다음에 의미있는 값을 저장하는 것이 좋다.

연산자

방정식(2x + 4 = y)에서 x와 y가 변수였다면 연산자는 +, =과 같은 역할을 한다.

여러가지 연산자

int main(){
    int a = 2;
    int b = 2;
    int c = 1;
    int d = 3;
    printf("%d", a * 2); // 출력: 4
    b *= 2;
    printf("%d", b); // 출력: 4
    printf("%d", c++); // 출력 :2;
    printf("%d", d--); // 출력: 2;
}

증감 연산자를 보면 ++, --가 변수명의 앞과 뒤에 붙는 것을 볼 수 있을 것이다.

연산자가 앞에 붙는다면 속한 문장을 먼저 진행한 후, 값을 증감하는 것이고, 뒤에 붙는다면 값을 우선 증가시킨 후 속한 문장을 진행하는 것이다.

int main(){
    int n1 = 10;
    int n2 = 10;
    
    printf("num1: %d"\n, num1);
    printf("num1++: %d"\n, num1++);
    printf("num1: %d"\n\n, num1);
    
    printf("num2: %d"\n, num2);
    printf("num2++: %d"\n, num2++);
    printf("num2: %d"\n, num2);
    return 0;
}
/* 출력
num1: 10
num1++: 10
num1: 11

num2: 10
num2: 11
num2: 11
*/

연산자에서 주의할 점은 바로 "결합방향"이 있다는 것이다. 

수학에서 사칙연산이 있을 때 더하기, 곱하기가 있다면 곱하기가 우선이고, 곱하기, 나누기가 있다면 앞에서부터 계산해나간다. C언어에서도 이러한 규칙이 있다.

연산자 우선 순위와 결합 방향

이미 봤던 연산자도 있고 보지 못했던 연산자들도 있을 것이다. 공부를 하며 다양한 연산자를 알게 될 것이고 이의 우선 순위, 결합 방향을 알아두면 차후 프로그래밍을 하는데 도움이 될 것이다.

728x90

댓글