2.1 Primitive Data Types
int, float, double, char — sizes, ranges, and memory layout. sizeof operator. Understanding why int is 4 bytes and char is 1 byte on modern systems.
2.2 Type Modifiers & Qualifiers
short, long, signed, unsigned — how they change storage and range. const, volatile, and register qualifiers. When to use unsigned vs signed.
2.3 Variables, Constants & Literals
Declaration vs definition vs initialisation. Integer, floating-point, character, and string literals. #define constants vs const variables — when to use which.
2.4 Type Casting & Conversions
Implicit (automatic) vs explicit (manual) type casting. Integer promotion rules. Common bugs: float truncation, sign extension, loss of precision. Using (type) cast syntax.
2.5 Arithmetic, Relational & Logical Operators
+, -, *, /, % (with integer vs float division gotchas). ==, !=, <, >. &&, ||, ! — short-circuit evaluation and its impact on code correctness.
2.6 Bitwise Operators
&, |, ^, ~, <<, >> — how they manipulate individual bits. Practical uses: flags, masking, power-of-2 checks, swapping without temp variable. Interview favourites.
2.7 Assignment, Ternary & Comma Operators
Compound assignment (+=, -=), ternary (? :), comma operator. Operator precedence and associativity — the table every C programmer must know.
2.8 Enumerated Types (enum) & typedef
Creating readable code with enums. typedef for type aliasing. Using typedef with structs and function pointers for cleaner APIs.
Placement relevance: Output prediction MCQs on operator precedence, type casting, and bitwise operations appear in TCS NQT, Wipro, Cognizant, and Infosys technical sections.