C Operator - sonkoni/Koni-Wiki GitHub Wiki

Operator | Precedence | sizeof | Bitwise

C ์—ฐ์‚ฐ์ž

Arithmetic

+a          ๋‹จํ•ญ ๋ง์…ˆ(์–‘์˜ ๋ถ€ํ˜ธ)
-a          ๋‹จํ•ญ ๋บ„์…ˆ(์Œ์˜ ๋ถ€ํ˜ธ)
a + b       ๋ง์…ˆ
a - b       ๋บ„์…ˆ
a * b       ๊ณฑ์…ˆ
a / b       ๋‚˜๋ˆ—์…ˆ
a % b       ๋‚˜๋จธ์ง€
~a          ๋น„ํŠธ NOT
a & b       ๋น„ํŠธ AND
a | b       ๋น„ํŠธ OR
a ^ b       ๋น„ํŠธ XOR
a << b      ๋น„ํŠธ ์™ผ์ชฝ ์‰ฌํ”„ํŠธ
a >> b      ๋น„ํŠธ ์˜ค๋ฅธ์ชฝ ์‰ฌํ”„ํŠธ

Assignment

ํ• ๋‹น๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

a = b       ํ• ๋‹น
a += b      a = a + b
a -= b      a = a - b
a *= b      a = a * b
a /= b      a = a / b
a %= b      a = a % b
a &= b      ๋น„ํŠธ์—ฐ์‚ฐ a = a & b
a |= b      ๋น„ํŠธ์—ฐ์‚ฐ a = a | b
a ^= b      ๋น„ํŠธ์—ฐ์‚ฐ a = a ^ b
a <<= b     ๋น„ํŠธ์—ฐ์‚ฐ a << b
a >>= b     ๋น„ํŠธ์—ฐ์‚ฐ a >> b

Logical

์„ ํ–‰์ด ์ฐธ์ด์–ด์•ผ ํ›„ํ–‰๋„ ํ‰๊ฐ€๋œ๋‹ค.

!a          ๋…ผ๋ฆฌ NOT
a && b      ๋…ผ๋ฆฌ AND
a || b      ๋…ผ๋ฆฌ OR

Comparison

๋ถˆ๋ฆฐ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

a == b      ๊ฐ™์Œ
a != b      ๋‹ค๋ฆ„
a < b       a ๊ฐ€ ์ž‘์Œ
a > b       a ๊ฐ€ ํผ
a <= b      a ๊ฐ€ b ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Œ
a >= b      a ๊ฐ€ b ๋ณด๋‹ค ํฌ๊ฐ€๋„ˆ ๊ฐ™์Œ

Member access

a[b]        ๋ฐฐ์—ด ์„œ๋ธŒ์Šคํฌ๋ฆฝํŠธ
*a          ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ
&a          ์ฃผ์†Œ
a.b         ๊ตฌ์กฐ์ฒด/๊ณต์šฉ์ฒด ๋ฉค๋ฒ„์ ‘๊ทผ
a->b        ํฌ์ธํ„ฐ๋กœ ๊ตฌ์กฐ์ฒด/๊ณต์šฉ์ฒด ๋ฉค๋ฒ„์ ‘๊ทผ

Increment/decrement

a++     postfix ๊ตฌ๋ฌธ์„ ๋ฒ—์–ด๋‚˜๋ฉด, a์— 1์ด ์ฆ๊ฐ€ํ•œ๋‹ค.
a--     postfix ๊ตฌ๋ฌธ์„ ๋ฒ—์–ด๋‚˜๋ฉด, a์— 1์ด ๊ฐ์†Œํ•œ๋‹ค.
++a     prefix  a์— 1์„ ์ฆ๊ฐ€์‹œํ‚จ ๋’ค, ๊ตฌ๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.
++b     prefix  a์— 1์„ ๊ฐ์†Œ์‹œํ‚จ ๋’ค, ๊ตฌ๋ฌธ์„ ๋ฒ—์–ด๋‚œ๋‹ค.

Other

func(...)       ํŽ‘์…˜์ฝœ
a, b            ์ปด๋งˆ ์—ฐ์‚ฐ
(type)a         ํƒ€์ž… ์บ์ŠคํŠธ
a ? b : c       ์‚ผํ•ญ์—ฐ์‚ฐ์ž
sizeof a        ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ
_Alignof(type)  ํƒ€์ž…์˜ ์ •๋ ฌ ํฌ๊ธฐ

์ฃผ์˜

ํ• ๋‹น ์—ฐ์‚ฐ์ž๋Š” ํ• ๋‹น๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

#include <stdio.h>
int main(int argc, char *argv[]) {
    int a = 10;
    printf("=> %d\n", a += 10);
//              โ–ฒ     -------
//              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 20
    return 0;
}
// => 20

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž๋Š” ์„ ํ–‰์ด ์ฐธ์ด์–ด์•ผ ํ›„ํ–‰๋„ ํ‰๊ฐ€๋œ๋‹ค.

#include <stdio.h>
int main(int argc, char *argv[]) {
    int a = 0; int b = 1;
//      โ”Œโ–ถ a๊ฐ€ ๊ฑฐ์ง“์ด๋ฏ€๋กœ b๋Š” ํ‰๊ฐ€ํ•˜์ง€๋„ ์•Š๋Š”๋‹ค.
    if (a && b) {    
        printf("Both True\n");
    }
    return 0;
}
// => 20

๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ๋ถˆ๋ฆฐ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

#include <stdio.h>
int main(int argc, char *argv[]) {
    int a = 5; int b = 4;
    printf("result: %d, %d", (a == b), (a - 1 == b));
//                           --------   ----------
//                           0 โ—€โ”˜       1 โ—€โ”˜
    return 0;
}
โš ๏ธ **GitHub.com Fallback** โš ๏ธ