Secrets of C Programming Language Contents

The Secrets of C Programming Language

1 Introduction to Computer & Programming

1.1 Classification of computer

1.2 Historical Development of Computers

1.3 Generation of Computers

1.4 Computer System and Organization

1.5 Programming Languages

1.6 Program Design Tools

1.7 Features of a good program

1.8 Problem Solving Using a Computer

1.9 Workout Examples

2 Introduction to C Language

2.1 History

2.2 Sample C programs

2.3 Basic structure of a C programs

2.4 Programming style in C

2.5 Compiling and Executing programs written in C

3 Lexical Elements, Operators and the C System

3.1 Character Set

3.2 Comments

3.3 Tokens

3.4 Precedence and Associativity of Operators

3.5 Variable Declaration

3.6 Expressions

3.7 Assignment Statements

3.8 Data Types

3.9 Type Conversion

3.10 Input and Output

3.11 Simple Macros

3.12 Mathematical Library Functions

3.13 The C System

3.14 Workout Examples

4 Decision making (Selective Structure)

4.1 Relational, Equality and Logical Operators

4.2 Expressions using relational, equality and logical operators

4.3 Compound Statement

4.4 The Expression Statement and Null Statement

4.5 The if Statement

4.6 The if-else Statement

4.7 Nested if-else Statement

4.8 Multiway conditional Statement

4.9 The switch Statement

4.10 The Conditional Operator (?:)

4.11 Workout Examples

5 Looping (Repetitive Structure)

5.1 The while Statement

5.2 The do Statement

5.3 The for Statement

5.4 Comparison of while, do-while and for loops

5.5 The Comma Operator

5.6 Multiple initializations & multiple statements in increment part in for loop

5.7 Nested Loops

5.8 Loop Interruption

5.9 Workout Examples

6 Functions

6.1 Need for user defined functions

6.2 Function definition

6.3 Traditional Style Function Definition

6.4 Function call

6.5 Function prototype

6.6 Different ways of using functions

6.7 Call by value & call by reference

6.8 Scope Rules

6.9 Function Call Sequence

6.10 Storage class

6.11 Multi-file Programming

6.12 Recursive Functions

6.13 Workout Examples

7 Arrays, Pointers and String

7.1 Array Basics

7.2 Pointers

7.3 Operator Precedence and Associativity Revisited

7.4 Relationship between arrays and pointers

7.5 Dynamic Memory Allocation

7.6 Call-by-reference

7.7 Arrays as function arguments

7.8 Storage mapping of arrays

7.9 Arrays of pointers & pointer to pointer

7.10 Strings

7.11 Strings and pointers

7.12 String handling functions in standard library

7.13 Ragged array

7.14 Argument to main()

7.15 Pointer to function

7.16 The Type Qualifiers const and volatile

7.17 Workout Examples

8 Structures and Union

8.1 Structure Basics

8.2 Accessing member of structures

8.3 Initialization of structures

8.4 Assigning structure to other structure

8.5 Structure as argument to function

8.6 Array of Structures

8.7 Nested Structure

8.8 Pointer to Structure

8.9 Operator precedence and associativity revisited

8.10 Structure containing array member

8.11 Structure containing pointer members

8.12 Self Referential Structures

8.13 Unions

8.14 Difference between Structure and Union

8.15 Bit fields

8.16 Workout Examples

9 Bitwise Operation and Enumeration Types

9.1 Bitwise Logical Operators

9.2 Bitwise Shift Operators

9.3 Operator Precedence and Associativity Revisited

9.4 Masking

9.5 Enumeration Types

9.6 Workout Examples

10 File Handling

10.1 File Access

10.2 Formatted Input/Output

10.3 Character Input/Output

10.4 Direct Input/Output

10.5 Random File Access

10.6 File operation

10.7 Error Handling

10.8 File Descriptor Input/Output

10.9 Workout Examples

11 The Preprocessor

11.1 Macro Replacement

11.2 Macros in stdio.h and ctype.h

11.3 Conditional Compilation

11.4 File Inclusion

11.5 Additional Preprocessing Directives

11.6 Workout Examples

12 Additional Features

12.1 Using variable number of arguments

12.2 goto Statement

12.3 Executing Operating System Commands

12.4 Accessing Environment Variables

12.5 Accessing System Time

12.6 Dynamic allocation of Matrices