5.1.4 · HinglishC Programming

Operators — arithmetic, relational, logical, bitwise, assignment, comma

2,247 words10 min readRead in English

5.1.4 · Coding › C Programming


Hum operators ko classify kyun karte hain?

Hum operators ko group karte hain kyunki har group ki apni return type aur precedence rules hoti hain. Groups ko blindly mix karna (jaise a & b == c) bugs ka #1 source hai.


1. Arithmetic operators


2. Relational & equality operators


3. Logical operators


4. Bitwise operators


5. Assignment operators

Figure — Operators — arithmetic, relational, logical, bitwise, assignment, comma

6. Comma operator


Precedence cheat-table (high → low, the 80/20)


Recall Feynman: 12 saal ke bacche ko samjhao

Operators chhote kitchen tools ki tarah hain. + ek mixer hai jo add karta hai, % woh tool hai jo pizza equally share karne ke baad bacha hua slice deta hai. && ek strict bouncer hai: dono conditions true honi chahiye andar aane ke liye, aur agar pehla banda fail karta hai, toh woh doosre ko check bhi nahi karta. Bit operators numbers ko light switches ki row ki tarah dekhte hain aur unhein flip karte hain. Aur ek "baithne ka order" (precedence) hota hai — kuch tools hamesha pehle jaate hain; agar order pasand na ho, brackets mein wrap karo apna order force karne ke liye.


Flashcards

C99 mein integer expression -7 % 2 kya evaluate hota hai, aur kyun?
-1; % dividend ki sign leta hai kyunki / zero ki taraf truncate karta hai: -7 - (-3)*2 = -1.
(3 < 5) jaisa relational expression value/type ki tarah kya return karta hai?
Ek int jo 1 (true) ya 0 (false) ke barabar hota hai.
if (x = 5) hamesha true kyun hota hai?
= assignment hai; yeh x mein 5 store karta hai aur expression ki value 5 hoti hai (nonzero), isliye condition true hoti hai. == use karo.
&& aur || ki short-circuit evaluation kya hoti hai?
&& ruk jaata hai agar left side false hai; || ruk jaata hai agar left side true hai — right operand evaluate nahi hota.
5 << 2 kya equal hota hai aur kyun?
20, kyunki left shift by n, 2^n se multiply karta hai (5 × 4).
12 & 10 bit by bit compute karo.
0000 1100 & 0000 1010 = 0000 1000 = 8.
if (a & b == c) galat kyun behave karta hai?
== ki precedence & se zyada hoti hai, isliye yeh a & (b == c) parse hota hai. Fix karo (a & b) == c se.
x = (1, 2, 3); x ko kya set karta hai, aur kyun?
3; comma operator har operand ko left to right evaluate karta hai aur last wala yield karta hai.
f(a, b) mein comma, comma operator hai?
Nahi, yeh ek argument separator hai. Comma expression pass karne ke liye f((a, b)) use karo.
5 / 2 2 deta hai lekin 5 / 2.0 2.5 kyun deta hai?
Dono int → integer (truncating) division; ek operand ko double banana real division ke liye promote karta hai.
C kaunsi division–remainder identity guarantee karta hai?
a == (a/b)*b + (a%b).
a = b = c = 0; kya karta hai aur kyun?
Sab ko 0 set karta hai; = right-associative hota hai aur har = apni assigned value return karta hai.

Connections

Concept Map

acts on

count of operands

grouped by

each has

int / does

% gives

linked by

derived from

type decides

bug source

returns

confused with =

Operator - tiny machine

Operands values

Arity unary/binary/ternary

Operator groups

Return type + precedence

Arithmetic + - * / %

Relational + equality

Truncating division toward zero

Remainder sign of dividend

Identity a = a/b*b + a%b

int vs double promotion

5/2 = 2 not 2.5

int 1 true / 0 false

if x=5 assigns not compares