c 언어 연산자 - Hwanghyewon06/c- GitHub Wiki

#include <stdio.h>
int main()
{
    int n = 10;
    int a = 1 + 2;
    int b = 10 / 3;
    printf("%d %d\n", n, sizeof(n));
    printf("%p %d\n", &n, sizeof(&n));
    printf("%d\n", a);
    printf("%d\n", b);
}

  • 코드 분석

변수 선언 및 초기화:

int n = 10;
int a = 1 + 2;
int b = 10 / 3;
  • n: 정수형 변수로 값 10을 초기화.

  • a: 덧셈 연산을 수행하여 값 1 + 2 = 3을 저장.

  • b: 나눗셈 연산을 수행하여 값 10 / 3의 몫 3을 저장(정수 나눗셈이므로 소수점 이하 값은 버려짐)

printf를 사용한 출력:

  • 첫 번째 출력:
printf("%d %d\n", n, sizeof(n));
  • %d: 정수형 데이터를 출력.

  • n의 값 10 sizeof(n)(정수형 변수의 크기)를 출력합니다. sizeof(n)는 보통 4바이트(32비트)를 반환합니다.

출력:

10 4

두 번째 출력:

printf("%p %d\n", &n, sizeof(&n));
  • %p: 메모리 주소를 출력.

  • &n: 변수 n의 메모리 주소를 반환.

  • sizeof(&n): 주소값의 크기를 반환하며, 보통 8바이트(64비트 시스템 기준)입니다.

출력 예시:

0x7ffc12345678 8

세 번째 출력:

printf("%d\n", a);

변수 a의 값을 출력합니다. 값은 3.

네 번째 출력:

printf("%d\n", b);

변수 b의 값을 출력합니다. 값은 10 / 3의 몫 3.

  • 최종 출력 결과
10 4
0x7ffc12345678 8
3
3

출력 연산자 사용 방식

#include <stdio.h>
int main()
{
    int a = 10;
    int b = 3;

    b = --a;
       // b = a--;
    printf(" %d %d\n", a, b);  
}

변수 선언 및 초기화:

int a = 10;
int b = 3;
  • a는 10으로 초기화됩니다.

  • b는 3으로 초기화됩니다.

b = --a; (전위 감소 연산):

--a는 전위 감소 연산자로, a의 값을 먼저 1 감소시킨 후, 감소된 값을 반환합니다.

즉, a는 먼저 9로 감소하고, 감소된 값 9b에 대입됩니다.

결과:

a = 9

b = 9

주석 처리된 b = a--; (후위 감소 연산)가 사용되었다면:

a--는 후위 감소 연산자로, 현재 값을 반환한 뒤에 a의 값을 1 감소시킵니다.

즉, a의 값 10b에 대입되고, 이후 a9로 감소됩니다.

결과:

a = 9

b = 10

출력문:

printf(" %d %d\n", a, b);  
  • a와 b의 값을 순서대로 출력합니다.

  • 위의 b = --a;를 기준으로 출력:

9 9

전위(--a)와 후위(a--)의 차이:

--a (전위 감소):

먼저 1 감소 → 그 값을 반환.

결과: 감소된 값이 사용됨.

코드에서 b = --a;를 사용하면

출력 결과

9 9

b = a--;로 변경하면 출력은 다음과 같습니다

9 10

a-- (후위 감소):

현재 값을 반환 → 그 후 1 감소.

결과: 감소 전 값이 사용됨.

산술연산자 코드

 #include <stdio.h>
int main()
{
    // 산술 연산자
    int a = 10;
    int b = 3;
    printf("%d\n", a + b);
    printf("%d\n", a - b);
    printf("%d\n", a * b);
    printf("%d\n", a / b);
    printf("%d\n", a % b);
}

printf를 이용한 산술 연산 결과 출력:

  • 덧셈 연산 (a + b):

ab를 더한 값 출력: 10 + 3 = 13

출력: 13

  • 뺄셈 연산 (a - b):

a에서 b를 뺀 값 출력: 10 - 3 = 7

출력: 7

  • 곱셈 연산 (a * b):

ab를 곱한 값 출력: 10 * 3 = 30

출력: 30

  • 나눗셈 연산 (a / b):

ab로 나누어 몫을 출력(정수 나눗셈): 10 / 3 = 3 (소수점 이하 버림)

출력: 3

  • 나머지 연산 (a % b):

ab로 나누었을 때의 나머지 출력: 10 % 3 = 1

출력: 1

산술 연산자 역할:

  1. + (덧셈): 두 값을 더합니다.

  2. - (뺄셈): 첫 번째 값에서 두 번째 값을 뺍니다.

  3. * (곱셈): 두 값을 곱합니다.

  4. / (나눗셈): 첫 번째 값을 두 번째 값으로 나누어 몫을 반환합니다.

  5. % (나머지): 첫 번째 값을 두 번째 값으로 나누었을 때 나머지를 반환합니다.

#코드 비교연산자

#include <stdio.h>
int main()
{
    int a = 10;
    int b = 3;

    printf("%d\n", a == b);  // a와 b가 같은지 비교
    printf("%d\n", a != b);  // a와 b가 같지 않은지 비교
    printf("%d\n", a <= b);  // a가 b보다 작거나 같은지 비교
    printf("%d\n", a >= b);  // a가 b보다 크거나 같은지 비교
    printf("%d\n", a > b);   // a가 b보다 큰지 비교
    printf("%d\n", a < b);   // a가 b보다 작은지 비교

    
}

코드 실행 결과:

a == b:

a와 b가 같은지 비교. 결과: 0 (거짓, 10 != 3).

출력: 0

a != b:

ab가 같지 않은지 비교. 결과: 1 (참, 10 != 3).

출력: 1

a <= b:

a가 b보다 작거나 같은지 비교. 결과: 0 (거짓, 10 > 3).

출력: 0

a >= b:

ab보다 크거나 같은지 비교. 결과: 1 (참, 10 > 3).

출력: 1

a > b:

ab보다 큰지 비교. 결과: 1 (참, 10 > 3).

출력: 1

a < b:

ab보다 작은지 비교. 결과: 0 (거짓, 10 > 3).

출력: 0

최종 출력 결과:

0
1
0
1
1
0

논리 연산자

#include <stdio.h>
int main()
{
    // 논리 연산자(값)
    int a = 1;
    int b = 0;
    printf("%d\n", a && b); // and
    printf("%d\n", a || b); // or
    printf("%d\n", !a);     // not
    printf("%d\n", !b);     // not
    
}

코드 설명:

변수 초기화:

int a = 1;
int b = 0;

a = 1: 논리적으로 참(1)을 나타냅니다.

b = 0: 논리적으로 거짓(0)을 나타냅니다.

논리 연산자 사용:

  • && (AND):
printf("%d\n", a && b);

두 값이 모두 참일 경우에만 결과가 참(1)이 됩니다.

a = 1(참)이고, b = 0(거짓)이므로 결과는 거짓(0).

출력: 0

|| (OR):

printf("%d\n", a || b);

두 값 중 하나라도 참이면 결과가 참(1)이 됩니다.

a = 1(참)이므로 결과는 참(1).

출력: 1

! (NOT) - a:

printf("%d\n", !a);

값을 뒤집습니다: 참(1) → 거짓(0).

a = 1이므로 결과는 거짓(0).

출력: 0

! (NOT) - b:

printf("%d\n", !b);

값을 뒤집습니다: 거짓(0) → 참(1).

b = 0이므로 결과는 참(1).

출력: 1

최종 출력 결과:

이 코드를 실행하면 다음과 같은 출력이 나타납니다:

0
1
0
1
  • 요약

&& (AND): 두 조건이 모두 참이면 1(참).

|| (OR): 두 조건 중 하나라도 참이면 1(참).

! (NOT): 참을 거짓으로, 거짓을 참으로 뒤집습니다

⚠️ **GitHub.com Fallback** ⚠️