C Programming
Module 1: Introduction to C
Agenda
1 Introduction to C Programming
2 Data Types & I/O Operations
3 Conditional & Iterative constructs
4 Logical Operators & Formatted I/O
2
Introduction to C Programming
3
Objectives
In this session, you will learn to:
Describe the evolution of the C programming language
Describe C as a second-generation as well as a third-generation language
4
Evolution ???
Ken Thompson created the B
language in 1969 from Martin Martin Richard
Richard's BCPL
Dennis Ritchie of Bell
Laboratories later converted B
into C by retaining most of B's
syntax in 1972 and wrote the
first compiler.
Ken Thompson & Dennis Ritchie
5
6
A very Small history
Originally used to develop UNIX and modern operating systems
Standardized using ANSI standards in 1989, updated in 1999
Modern C compilers adhere to ANSI C standards and provide additional
features
7
Nature of the C Language
From its evolution, it was natural for C to exhibit the powerful low-level
features of second generation languages like pointers, bit manipulation etc.
It also supports conditional constructs, loop constructs, a rich list of
operators, and a variety of data types that is so typical of any third
generation language.
The combined features of second and third generation language make C a
very powerful and a flexible language.
8
Nature of the C Language (Contd.).
These features of C make it possible to use the language for systems
programming like development of compilers, interpreters, operating
systems, graphics and general utilities.
It is also ideal for a host of applications in the commercial environment.
Much of the Unix operating system has been written in the C language.
9
Block Structured Nature of C
The basic unit of code in C is written as a C function, that can in turn be
used as building blocks to write more C functions, thus facilitating modular
programming.
C provides all features of structured programming such as writing
programs as functions, functions returning values, functions defining its
own local variables etc.
C language offers only a handful of functions that form the core of the
language; rest of the functions, available as part of the language libraries, are
developed using the core functions, thus expanding the scope of the
language.
10
Block Structured Nature of C (Contd.).
This promotes functionally cohesive code and therefore, facilitates
reusability.
Thus standalone functions can be written as part of a library that can be
deployed in other applications.
11
The C Language: Features
Pointers: In addition to referencing a memory location through a variable
name, the C language allows reference to a memory location by its internal
address, or byte number called a pointer.
Memory Allocation: Generally, in most programming languages, memory
is assigned to a variable name at the time of definition. C allows dynamic
allocation of memory; i.e., a C program can request the operating system
to release memory for the use of the program at the time of execution.
12
The C Language: Features
Recursion: In C, a function can call itself. Such functions are called
recursive functions.
Bit Manipulation: C allows manipulation of data in its lowest form of
storage; i.e., it is possible to manipulate the bits within a byte using bit shift
operators (right bit shift, left bit shift operators), and the bitwise or |,
bitwise exclusive or ^, and the bitwise and & operator.
13
The C Language: Features (Contd.).
Keywords: There are only 32 keywords, i.e., reserved words that cannot
be used as a variable declaration. The C99 has introduced five additional
keywords.
(inline, restrict, _Bool, _Complex and _Imaginary).
Library Functions: C is accompanied by a number of library functions to
carry out various commonly used operations. These functions are not part
of the language, but are supplied as a part of C compiler. Features which
tend to be computer-dependent are generally written as library functions.
14
The Hello World Program
/* Comment statements */ /* The Hello World program */
Preprocessor directives # include <stdio.h>
main() main()
{ {
Program statements; printf(Hello World\n);
} }
15
Factored Code: An Example
/* Comment statements */ /* A sample C program */
Preprocessor directives # include <stdio.h>
Function prototypes; int sum();
global variable declarations; int a=10, b=20;
main() main()
{ {
local variable declarations; int c;
Program statements; c = sum();
} printf(%d+%d = %d \n,a,b,c);
}
[Additional functions .] int sum()
{
return(a+b);
}
16