Tech Blog/C and C++

C언어 변수의 선언 및 초기화, Operator 등

EXPRESSIONS HAVE POWER 2021. 6. 7. 17:34

* 변수의 선언 및 초기화 (VarDeclAndInit)

VarDeclAndInit.c

#include <stdio.h>

int main(void)
{
	int num1, num2; // 변수 num1, num2의 선언
    int num3=30, num4=40; // 변수 num3, num4의 선언 및 초기화
    
    printf("num1: %d, num2: %d \n", num1, num2);
    num1=10; // 변수 num1의 초기화
    num2=20; // 변수 num2의 초기화
    
    printf("num1: %d, num2: %d \n", num1, num2)
    printf("num3: %d, num4: %d \n", num3, num4)
}

실행결과

num1: -858993460, num2: -858993460
num1: 10, num2: 20
num3: 30, num4: 40

5행에서는 두 개의 변수를 선언만 하였고, 초기화 하지 않았다. 그리고 이렇게 초기화 되지 않은 변수에 저장된 값을 8행에서 출력하였다.

int num1=0, int num2=0; 

위와 같이 변수를 선언함과 동시에 0으로 초기화한 다음 이후에 의미 있는 값을 저장하기도 한다.

 

 

* 덧셈 프로그램의 완성 (SimpleAddTwo)

 

SimpleAddTwo.c

#include <stdio.h>

int main(void)
{
	int num1=3;
    int num2=4;
    int result=num1+num2;
    
    printf("덧셈 결과: %d \n", result);
    printf("%d+%d=%d \n", num1, num2, result);
    printf("%d와(과) %d의 합은 %d입니다.\n, num1, num2, result);
    return 0;
}

실행결과

덧셈 결과: 7
3+4=7
3와(과) 4의 합은 7입니다.​

* 대입연산자(=)와 산술연산자(+,-,*,/,%) (OperatorOne)

OperatorOne.c

#include <stdio.h>

int main(void)
{
	int num1=9, num2=2;
    printf("%d+%d=%d \n", num1, num2, num1+num2);
    printf("%d-%d=%d \n", num1, num2, num1-num2);
    printf("%d*%d=%d \n", num1, num2, num1*num2);
    printf("%d÷%d의 몫=%d \n", num1, num2, num1/num2);
    printf("%d÷%d의 나머지=%d \n", num1, num2, num1%num2);
    return 0;
}


실행결과

9+2=11
9-2=7
9X2=18
9÷2의 몫=4
9÷2의 나머지=1

* 복합대입연산자 (OperatorTwo)

OperatorTwo.c

#include <stdio.h>

int main(void){
	int num1=2, num2=4, num3= 6;
    num +=3 // num1 = num1 +3;
    num2 *= 4; // num2= num2*4;
    num3 *= 5; // num3= num3 % 5;
    printf("Result: %d, %d, %d \n", num1, num2, num3);
    return 0;
  
}

실행결과

Result: 5, 16, 1. 

* 부호연산의 의미를 갖는 +연산자와 - 연산자

OperatorThree.c

#include <stdio.h>

int main(void)
{
	int num1 = +2;
    int num2 = -4;
    
    num1 = -num1;
    printf("num1: %d \n", num1);
    num2 = -num2;
    printf("num2: %d \n", num2);
    return 0;
}

실행결과

num1: -2
num2: 4

* 증가, 감소 연산자 (OperatorFour, OperatorFive)

연산자 연산자의 기능 결합방향
++num 값을 1 증가 후, 속한 문장의 나머지를 진행(선 증가, 후 연산) 예) val = ++num; <-
num++ 속한 문장을 먼저 진행한 후, 값을 1 증가(선 연산, 후 증가) 예) val = num++ ->
--num 값을 1 감소 후, 속한 문장의 나머지를 진행(선 감소, 후 연산) 예) val= --num; <-
num-- 속한 문장을 먼저 진행한 후, 값을 1 감소(선 연산, 후 감소) 예) val = num--; ->
OperatorFour.c

#include <stdio.h>

int main(void)
{
	int num1=12;
    int num2=12;
    
    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: 12
num1++: 12
num1: 13

num2: 12
num2: 13
num2: 13
OperatorFive

#include <stdio.h>

int main(void)
{
	int num1=10;
    int num2=(num1--)+2; // 후위 감소

	printf("num1: %d" \n", num1);
    printf("num2: %d" \n", num2);
    return 0;
}

실행결과 

num1: 9 
num2 :12

첫째. num 1의 선 연산, 후 감소

 

관계연산자 (OperatorSix)

- 조건을 만족하면 1, 만족하지 않으면 0을 반환한다.

<, > , ==, !=, <=, >= 

OperatorSix.c

#include <stdio.h>

int main void){
	int num1 = 10;
    int num12 = 12;
    int result1, result2, result3;

    result1=(num1==num1
    result2=(num2<=num2);
    result3=(num1>num2);
    
    prinrf("result1: %d \n", result1);
    prinrf("result2: %d \n", result2);
    printf("result3: %d \n", result3);

  	return0;  
}


실행 결과

return1: 0
return2: 1
return3: 0