c

c언어 2강 변수와 연산자 (윤성우 열혈c)

킹차니 2021. 2. 19. 10:16

변수와 연산자


int main(void) {

    int num;

    num = 3;

}

 

int num;   -> 정수의 저장이 가능한 매모리 공간을 할당하고 그  메모리 공간의 이름을 num이라 합니다.

num = 3;  -> num이라는 메모리 공간(변수)에 값3을 집어 넣습니다.

 

int num=3, num2 = 4; 이렇게 변수를 선언함과 동시에 초기화할 수도 있다.

변수선언시에 주의 사항: 중괄호 내에 변수를 선언할 경우, 변수의 선언문은 중괄호 앞부분에 위치해야한다!

 

 

변수의 자료형

변수는 실수형 자료형과 정수형 자료형으로 나뉜다.

정수형: char, short, int, long

실수형: float, double 

 

int main(void) {

    int num1 = 3, num2 = 4;

    int result = num1 + num2;

    printf("%d+%d=%d\n",num1,num2,result);

}

위는 덧셈프로그램 예시

 

또한 함수 호출문의 인자 전달 위치에 연산식이 올 수 있다.

int main(void) {

    int num1 = 3, num2 = 4;

 

    printf("%d+%d=%d\n",num1,num2,num1+num2);

}

 

이러한 경우 함수 호출에 앞서 연산식이 먼저 진행되고, 연산의 결과가 인자가 되어 함수의 호출까지 이어짐

 

 

# 증가,감소 연산자

 

​++num :선증가 후진행

- - num: 선감소 후진행

num++ : 선진행 후증가

num - - : 선진행 후감소

 

연산자가 피연산자의 왼편에 붙는 경우에는 먼저 1을 증가 및 감소시키고 문장의 나머지 부분을 진행한다.

오른편에 붙는 경우에는 먼저 문장 전체를 실행키시고 난뒤에 1을 증가및 감소시킨다.

int main(void) {

    int num1=10;

    int num2=(num1--)+2;

    printf("num1:%d\n",num1);

    printf("num2:%d\n",num2);

}

출력 결과:

num1: 9

num2: 12

 

 

 

# 관계 연산자

 

>, < . ==, !=, <=, >= 등이 있는데 연산의 결과 조건을 만족하면 1을 반환하고, 만족하지 않으면 0을 반환한다.

 

int main(void) {

    int num1=10;

    int num2=20;

    int result1, result2, result3;

    result1 = (num1==num2);

    result2 = (num1 >= num2);

    result3 = (num1 <= num2);

    printf("result1:%d\n",result1);

    printf("result2:%d\n",result2);

    printf("result3:%d\n",result3);

}

출력 결과:

result1:0

result2:0

result3:1

* 0은 False ,1은 True.

 

 

 

# 논리 연산자

 

A&&B  : A,B 둘 다 참이면 참을 반환. (논리 AND)

A || B   : A,B 둘 중 하나라도 참이면 참을 반환. (논리 OR)

! A       :  A가 참이면 거짓, 거짓이면 참을 반환  (논리 NOT)

 

연산자 우선순위에 따라' 관계연산자'와 '논리연산자'가 한 문장 안에 있을 때, 관계 연산자가 먼저 실행된다.

int main(void) {

    int num1=10;

    int num2=20;

    int result = (num1==10 && num2==20);

    printf("result:%d",result);

}

 

 

 

@또한 C언어는 0이 아닌 모든 값을 참(true)로 간주한다.

 

 

 

# 콤마 연산자( ,)

 

콤마 연산자는 1. 둘 이상의 변수를 동시에 선언할 때.

                     2. 둘 이상의 문장을 한 행에 삽입할 때,

                     3. 둘 이상의 인자를 함수로 전달할 때 인자의 구분을 목적으로 사용.

즉 콤마 연산자는 주로 연산의 결과가 아닌 구분을 목적으로 사용된다.

 

# scanf함수

int main(void) {

    int num;

    scanf("%d", &num);

}

 

scanf("%d", &num);      -> 키보드로 입력된 정수를 변수 num에 저장하라.

스캔에프 함수에서는 %d가 '10진수 정수형태의 입력'을 뜻한다.

(num앞의 &는 포인터와 더불어 함수에 대해 깊게 공부한 후 이해할 수 있다. 나중에 배우자!)

int main(void) {

    int num1, num2, num3;

    scanf("%d %d %d", &num1, &num2, &num3);

}

 

요렇게 여러게를 입력받을 수도 있다.