C language is a structured, procedural programming language developed in the early 1970s by Dennis Ritchie at Bell Labs. Some key points:
- C was created to develop the UNIX operating system and is still widely used for systems programming.
- Major features were derived from an earlier language called B.
- It is a middle-level language that provides low-level access to memory and hardware.
- C has been widely adopted and is one of the most popular and widely used languages, forming the basis for many other popular languages like C++ and Java. Areas where C is commonly used include operating systems, graphics applications, and compilers.
C is a structured, procedure-oriented programming language developed at Bell Labs in 1972 by Dennis Ritchie. It forms the basis for UNIX and includes ANSI standards established in 1988.
C is a structured, middle-level programming language focusing on functions. It utilizes built-in capabilities, dividing programs into functions, and contrasts with object-oriented languages.
C follows a top-down approach in programming structure. Key standardized versions include C89/C90 and C99. Functions like printf() and scanf() are integral library functions.
The printf() function displays various data types with respective format specifiers. Case sensitivity is crucial in function naming.
Scanf() reads user input for characters and strings, utilizing format specifiers. Addresses are used with variables in scanf.
C features four main data types: basic, enumerated, derived, and void. The sizes and uses of basic data types like int and char are outlined.
Integer, character, float, and double types are discussed, highlighting memory requirements and limitations per CPU architecture.
Modifiers adjust data type storage sizes; sizeof() identifies memory allocation. Limits for each data type vary by processor.
Lists essential C language keywords including auto, break, char, if, and return, crucial for programming and syntax.
C – LanguageHistory
C language is a structure oriented programming language, was developed
at Bell Laboratories in 1972 by Dennis Ritchie
C language features were derived from earlier language called “B” (Basic
CombinedProgramming Language – BCPL)
C language was invented for implementing UNIX operating system
In 1978, Dennis Ritchie and Brian Kernighan published the first edition
“The C Programming Language” and commonly known as K&R C
In 1983, the American National Standards Institute (ANSI) established a
committee to provide a modern, comprehensive definition of C. The
resulting definition, the ANSI standard, or “ANSI C”, was completed late
1988.
Operating systems, C compiler and all UNIX application programs are
written in C language
It is also called as procedure oriented programming language
C language is reliable, simple and easy to use.
C has been coded in assembly language
Uses of C language:
C language is used for developing system applications that forms major
portion of operating systems such as Windows, UNIX and Linux. Below
are some examples of C being used?
Database systems
Graphics packages
Word processors
Operating system development
Compilers and Assemblers
Network drivers
Interpreters
Which level the C language is belonging to?
S.no High Level Middle Level Low Level
1
High level
languages
provides almost
Middle level
languages don’t
provide all the
Low level
languages
provides
2.
everything that
the programmer
mightneed to
do as already
built into the
language
built-in functions
found in high
level languages,
but provides all
building blocks
that we need to
produce the
result we want
nothing other
than access
to the
machines
basic
instruction
set
2
Examples:
Java, Python
C, C++ Assembler
C language is a structured language
S.no
Structure
oriented
Object oriented Non structure
1
In this type of
language, large
programs are
divided into
small programs
called functions
In this type of
language,
programs are
divided into
objects
There is no
specific
structure for
programming
this language
2
Prime focus is
on functions
and procedures
that operate on
data
Prime focus is
on the data
that is being
operated and
not on the
functions or
procedures
N/A
3
Data moves
freely around
the systems
from one
function to
another
Data is hidden
and cannot be
accessed by
external
functions
N/A
3.
4
Program
structure
follows “Top
Down
Approach”
Program
structure
follows “Bottom
UPApproach”
N/A
5
Examples:
C, Pascal,
ALGOL and
Modula-2
C++, JAVA and
C# (C sharp)
BASIC, COBOL,
FORTRAN
Key points to remember:
1. C language is structured, middle level programming language developed
by Dennis Ritchie
2. Operating system programs such as Windows, Unix, Linux are written by
C language
3. C89/C90 and C99 are two standardized editions of C language
4. C has been written in assembly language
C – printf and scanf
printf() and scanf() functions are inbuilt library functions in C which are
available in C library by default. These functions are declared and related
macros are defined in “stdio.h” which is a header file.
We have to include “stdio.h” file as shown in below C program to make
use of these printf() and scanf() library functions.
1. C printf() function:
printf() function is used to print the “character, string, float, integer,
octal and hexadecimal values” onto the output screen.
We use printf() function with %d format specifier to display the value
of an integer variable.
Similarly %c is used to display character, %f for float variable, %s for
string variable, %lf for double and %x for hexadecimal variable.
To generate a newline,we use “n” in C printf() statement.
4.
Note:
C languageis case sensitive. For example, printf() and scanf() are
different from Printf() and Scanf(). All characters in printf() and
scanf() functions must be in lower case.
#include <stdio.h>
int main()
{
char ch = 'A';
char str[20] = "NIIT.com";
float flt = 10.234;
int no = 150;
double dbl = 20.123456;
printf("Character is %c n", ch);
printf("String is %s n" , str);
printf("Float value is %f n", flt);
printf("Integer value is %dn" , no);
printf("Double value is %lf n", dbl);
printf("Octal value is %o n", no);
printf("Hexadecimal value is %x n", no);
return 0;
}
Output:
Character is A
String is NIIT.COM
Float value is 10.234000
Integer value is 150
Double value is 20.123456
Octal value is 226
Hexadecimal value is 96
5.
You can seethe output with the same data which are placed within the
double quotes of printf statement in the program except
%d got replaced by value of an integer variable (no),
%c got replaced by value of a character variable (ch),
%f got replaced by value of a float variable (flt),
%lf got replaced by value of a double variable (dbl),
%s got replaced by value of a string variable (str),
%o got replaced by a octal value corresponding to integer variable
(no),
%x got replaced by a hexadecimal value corresponding to integer
variable
n got replaced by a newline.
2. C scanf() function:
scanf() function is used to read character, string, numeric data from
keyboard
Consider below example program where user enters a character. This
value is assigned to the variable “ch” and then displayed.
Then, user enters a string and this value is assigned to the
variable”str” and then displayed.
Example program for printf() and scanf() functions in C:
#include <stdio.h>
int main()
{
char ch;
char str[100];
printf("Enter any character n");
scanf("%c", &ch);
printf("Entered character is %c n", ch);
printf("Enter any string ( upto 100 character ) n");
scanf("%s", &str);
6.
printf("Entered string is%s n", str);
}
Output:
The format specifier %d is used in scanf () statement. So that, the
value entered is received as an integer and %s for string.
Ampersand is used before variable name “ch” in scanf () statement as
&ch.
It is just like in a pointer which is used to point to the variable. For
more information about how pointer works
C – Data Types
C data types are defined as the data storage format that a variable can
store a data to perform a specific operation.
Data types are used to define a variable before to use in a program.
Size of variable, constant and array are determined by data types.
C – data types:
There are four data types in C language. They are,
S.no Types Data Types
1 Basic data types int, char, float, double
2
Enumeration data
type
enum
3 Derived data type
pointer, array, structure,
union
4 Void data type void
Enter any character
a
Entered character is a
Enter any string ( upto 100 character )
hai
Entered string is hai
7.
1. Basic datatypes in C:
1.1. Integer data type:
Integer data type allows a variable to store numeric values.
“int” keyword is used to refer integer data type.
The storage size of int data type is 2 or 4 or 8 byte.
It varies depend upon the processor in the CPU that we use. If we are
using 16 bit processor, 2 byte (16 bit) of memory will be allocated for int
data type.
Like wise, 4 byte (32 bit) of memory for 32 bit processor and 8 byte (64
bit) of memory for 64 bit processor is allocated for int datatype.
int (2 byte) can store values from -32,768 to +32,767
int (4 byte) can store values from -2,147,483,648 to +2,147,483,647.
If you want to use the integer value that crosses the above limit, you can
go for “long int” and “long long int” for which the limits are very high.
Note:
We can’t store decimal values using int data type.
If we use int data type to store decimal values, decimal values will be
truncated and we will get only whole number.
In this case, float data type can be used to store decimal values in a
variable.
1.2. Character data type:
Character data type allows a variable to store only one character.
Storage size of character data type is 1. We can store only one character
using character data type.
“char” keyword is used to refer character data type.
For example, ‘A’ can be stored using char datatype. You can’t store more
than one character using char data type.
Please refer C – Strings topic to know how to store more than one
characters in a variable.
1.3. Floating point data type:
Floating point data type consists of 2 types. They are,
1. float
2. double
8.
1. float:
Floatdata type allows a variable to store decimal values.
Storage size of float data type is 4. This also varies depend upon the
processor in the CPU as “int” data type.
We can use up-to 6 digits after decimal using float data type.
For example, 10.456789 can be stored in a variable using float data type.
2. double:
Double data type is also same as float data type which allows up-to 10
digits after decimal.
The range for double datatype is from 1E–37 to 1E+37.
1.3.1. sizeof () function in C:
sizeof () function is used to find the memory space allocated for each C data
types.
#include <stdio.h>
#include <limits.h>
int main()
{
int a;
char b;
float c;
double d;
printf("Storage size for int data type:%d n",sizeof(a));
printf("Storage size for char data type:%d n",sizeof(b));
printf("Storage size for float data type:%d n",sizeof(c));
9.
printf("Storage size fordouble data type:%dn",sizeof(d));
return 0;
}
Output:
Storage size for int data type:4
Storage size for char data type:1
Storage size for float data type:4
Storage size for double data type:8
1.3.2. Modifiers in C:
The amount of memory space to be allocated for a variable is derived by
modifiers.
Modifiers are prefixed with basic data types to modify (either increase or
decrease) the amount of storage space allocated to a variable.
For example, storage space for int data type is 4 byte for 32 bit
processor. We can increase the range by using long int which is 8
byte. We can decrease the range by using short int which is 2 byte.
There are 5 modifiers available in C language. They are,
1. short
2. long
3. signed
4. unsigned
5. long long
Below table gives the detail about the storage size of each C basic data
type in 16 bit processor.
Please keep in mind that storage size and range for int and float datatype
will vary depend on the CPU processor (8,16, 32 and 64 bit)
S.No C Data types storage Range
10.
Size
1 char 1–127 to 127
2 int 2 –32,767 to 32,767
3 float 4
1E–37 to 1E+37 with six digits of
precision
4 double 8
1E–37 to 1E+37 with ten digits
of precision
5
long double
10
1E–37 to 1E+37 with ten digits
of precision
6 long int 4
–2,147,483,647 to
2,147,483,647
7 short int 2 –32,767 to 32,767
8
unsigned short
int
2 0 to 65,535
9 signed short int 2 –32,767 to 32,767
10 long long int 8
–(2power(63) –1) to 2(power)63
–1
11 signed long int 4
–2,147,483,647 to
2,147,483,647
12
unsigned long
int
4 0 to 4,294,967,295
13
unsigned long
long int
8 2(power)64 –1
11.
Key words
auto doubleint struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while