* 논리연산자(&&, ||, !)

연산자 연산자의 기능 결합방향
&& A와 B (AND) -->
|| A 또는 B (OR) -->
!A <--
OperatorSeven.c

#include <stdio.h>

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

    result1 = (num1==10 && num2 == 12);
    result2 = (num1<12 || num2 >12);
    result3 = (!num1);

    printf("result1: %d \n", result1);
    printf("result2: %d \n", result2);
    printf("result3: %d \n", result3);
    return 0;
}

실행결과

result1: 1
result2: 1
result3: 0

result3  = (!num1); 

이 문장은 논리 NOT 연산의 예를 보여 준다. num1에 1이 저장되어 있다면 result 3 에는 0이 저장되고 , num1에 0이 저장되어 있다면, result 3에는 1이 저장된다. 그렇다면 num1에 0도 1도 아닌 다른 값이 저장되어 있다면?

- "C언어는 0이 아닌 모든 값을 '참(TRUE)으로 간주한다." 0은 거짓 그 외 숫자는 모두 참이다.

그외 숫자는 결과로 '참'이 반환되어야 해서 1이 반환되었고, result 3에 0이 저장 된 이유이다. 

 

* 콤마연산자 (,)

 

콤마 연산자는 둘 이상의 변수를 동시에 선언하거나, 둘 이상의 문장을 한 행(line)에 삽입하는 경우 사용되는 연산자이다.

CommaOp.c

#include <stdio.h>

int main(void)
{
	int num1=1, num2=2;
    printf("Hello "), printf("world! \n");
    num1++, num2++;
    printf("%d ", num1), printf("%d ", num2), printf("\n");
    return 0;
}

실행결과

Hello world!
2 3

* 변수의 선언 및 초기화 (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

printf 함수로 문자열 이외에 다양항 데이터형태를 출력해보자!

 

PrintOne.c

#include <stdio.h>

int main(void)
{
	printf("Hello World\n");
    printf("%d\n", 1234);
    printf("%d %d\n", 10, 20);
    return 0 
}

실행결과

Hello World
1234
10 20 

\n = 줄바꿈

%d = 십진수 정수형태 출력 

PrintTwo.c

#include <stdio.h>

int main(void)
{
	printf("My age: %d \n", 20);
    printf("%d is my point \n", 100);
    printf("Good \nmorning \neverybody\n");
    return 0;
}

실행결과 

My age : 20
100 is my point
Good
morning
everybody

("Good \nmorning \neverybody\n")

\n \n \n 3개의 행으로

출력됨 

+ Recent posts