0% found this document useful (0 votes)
59 views41 pages

Unit I - C

c notes

Uploaded by

Lalitha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views41 pages

Unit I - C

c notes

Uploaded by

Lalitha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 41

UNIT-1

UNIT I

Computer systems:
A Computer is an electronic device which performs operations such as accepts data
As an input, store the data, manipulate or process the data and produce the results an output.
Main task performed by a computer
• Accept the data
• Process or manipulate the data
• Display or store the result in the form of human understanding
• Store the data, instructions and results.

A computer system consists of hardware and software.

Computer hardware is the collection of physical elements that comprise a computer system.

Computer software is a collection of computer programs and related data that provides the
instructions for a computer what to do and how to do it. Software refers to one or more computer
programs and data held in the storage of the computer for some purpose
Basically computer software is of three main types

System Software: System software is responsible for managing a variety of


independent hardware components, so that they can work together. Its purpose is
to unburden the application software programmer from the often complex details of
the particular computer being used, including such accessories as communications
devices, printers, device readers, displays and keyboards, and also to partition the
computer's resources such as memory and processor time in a safe and stable
manner.
• Device drivers
• Operating systems
• Servers
• Utilities
• Window systems

Programming Software: Programming Software usually provides tools to assist a


programmer in writing computer programs, and software using different
programming languages in a more convenient way. The tools include:
• Compilers
• Debuggers
• Interpreters
• Linkers
• Text editors

Application Software: Application software is developed to aid in any task that


benefits from computation. It is a broad category, and encompasses Software of
many kinds, including the internet browser being used to display this page. This
category includes:
• Business software
• Computer aided design
• Databases
• Decision making software
• Educational software
• Image editing

Computing Environment:
Computing Environment is a collection of computers / machines, software, and networks that
support the processing and exchange of electronic information meant to support various types of
computing solutions.

Types of Computing Environments:


 Personal Computing Environment
 Client Server Environment
 Time sharing Environment
 Distributed Environment

Personal Computing Environment:


All of the computer hardware components are tied together in our personal
computer. A personal computer (PC) is a computer whose original sales price,
size, and capabilities make it useful for individuals, and intended to be operated
directly by an end user, with no intervening computer operator. People generally
relate this term with Microsoft‟s Windows Operating system. Personal computers
generally run on Windows, Mac or some version of Linux operating system.
Desktop: Desktop computer is just another version of Personal Computer intended
for regular use from a single use. A computer that can be fit on a desk can also be
called as desktop.

Time-Sharing Environment:

In the time-sharing environment, all computing must be done by the central computer. The central computer the shared resources, it
manage the shared data and printing. Employees in large companies often work in what is known as time sharing environment. In
the time sharing environment, many users are connected to one or more computers. These computers may be mini computers and
central mainframes. In this environment the output devices, auxiliary storage devices are shared by all the users
Client/Server Environment
Client/Server computing environment splits the computing function between a
central computer and user‟s computers. The users are given personal computers
or work stations so that some of the computation responsibility can be moved
from the central computer and assigned to the workstations. In the client/server
environment the users micro computers or work stations are called the client. The
central computer which may be a powerful micro computer, minicomputer or
central mainframe system is known as server.

Distributed Computing Environment


A distributed computing environment provides a seamless integration of computing
functions between different servers and clients. The internet provides connectivity
to different servers throughout the world. This environment provides reliable,
scalable and highly available network.
COMPUTER LANGUAGES
In order to communicate with the computer user also needs to have a language that should be
understood by the computer. For this purpose, different languages are developed for performing
different types of work on the computer. Basically, languages are divided into two categories
according to their interpretation.

1. Low Level Languages.


2. High Level Languages.
Low Level Languages
Low level computer languages are machine codes or close to it. Computer cannot understand
instructions given in high level languages or in English. It can only understand and execute
instructions given in the form of machine language i.e. language of 0 and 1. There are two types
of low level languages:
 Machine Language.
 Assembly Language
Machine Language: It is the lowest and most elementary level of Programming language and
was the first type of programming language to be Developed. Machine Language is basically the
only language which computer Can understand. In fact, a manufacturer designs a computer to
obey just one Language, its machine code, which is represented inside the computer by a String
of binary digits (bits) 0 and 1. The symbol 0 stands for the absence of Electric pulse and 1 for the
presence of an electric pulse . Since a computer is Capable of recognizing electric signals,
therefore, it understand machine Language.
Advantages of Machine Language
i) It makes fast and efficient use of the computer.
ii) It requires no translator to translate the code i.e. Directly understood by the computer
Disadvantages of Machine Language:

i) All operation codes have to be remembered


iv) These languages are machine dependent i.e. a particular
Machine language can be used on only one type of
computer Assembly Language
It was developed to overcome some of the many inconveniences of machine language. This is
another low level but a very important language in which operation codes and operands are given
in the form of alphanumeric symbols instead of 0‟s and l‟s. These alphanumeric symbols will be
known as mnemonic codes and can have maximum up to 5 letter combination e.g. ADD for
addition, SUB for subtraction, START,LABEL etc. Because of this feature it is also known as
„Symbolic Programming Language‟. This language is also very difficult and needs a lot of
practice to master it because very small
English support is given to this language. The language mainly helps in compiler orientations.
The instructions of the Assembly language will also be converted to machine codes by language
translator to be executed by the computer.

Advantages of Assembly Language


i) It is easier to understand and use as compared to machine language.
ii)It is easy to locate and correct errors.
iii) It is modified easily
Disadvantages of Assembly Language
i) Like machine language it is also machine dependent.
ii) Since it is machine dependent therefore programmer Should have the knowledge of the
hardware also.
High Level Languages
High level computer languages give formats close to English language and the purpose of
developing high level languages is to enable people to write programs easily and in their own
native language environment (English). High-level languages are basically symbolic languages
that use English words and/or mathematical symbols rather than mnemonic codes. Each
instruction in the high level language is translated into many machine language instructions thus
showing one-to-many translation
Types of High Level Languages
Many languages have been developed for achieving different variety of tasks, some are fairly
specialized others are quite general purpose.
These are categorized according to their use as
a) Algebraic Formula-Type Processing. These languages are oriented towards the
computational procedures for solving mathematical and statistical problem
Examples are
 BASIC (Beginners All Purpose Symbolic Instruction Code).
 FORTRAN (Formula Translation).
 PL/I (Programming Language, Version 1).
 ALGOL (Algorithmic Language).
 APL (A Programming Language).
b) Business Data Processing:
 These languages emphasize their capabilities for maintaining data processing procedures
and files handling problems. Examples are:
 COBOL (Common Business Oriented Language).
 RPG (Report Program Generator
b) String and List Processing: These are used for string manipulation including search for
patterns, inserting and deleting characters. Examples are:
 LISP (List Processing).
 Prolog (Program in Logic).
Object Oriented Programming Language

In OOP, the computer program is divided into objects. Examples are:


 C++
 Java
e) Visual programming language: these are designed for building Windows-based applications
Examples are:
 Visual Basic
 Visual Java
 Visual C

Advantages of High Level Language


Following are the advantages of a high level language:
 User-friendly
 Similar to English with vocabulary of words and symbols
 Therefore it is easier to learn.
 They are easier to maintain.
Disadvantages of High Level Language

 A high-level language has to be translated into the machine language by a translator and
thus a price in computer time is paid.
 The object code generated by a translator might be inefficient Compared to an equivalent
assembly language program
Creating and Running Programs:
There are four steps in this process.

1. Writing and editing the program using Text editor (source code).
2. Compile the program using any C compiler.(.bak file)
3. Linking the program with the required library modules(object file)
4. Executing the program. (.Exe file)

Creating and Editing a C Program in C Programming Language compiler:


Writing or creating and editing source program is a first step in c language. Source
code is written in c programming language according to the type of problem or
requirement, in any text editor.

Saving C Program in C Programming Language: Source code is saved on the


secondary storage. Source code is saved as text file. The extension of file must be
".c". Example the file name is "learn c programming language.c"

Compiling C program in C Programming Language: Computer does not


understand c programming language. It understands only 0 and 1 means machine
language. So c programming language code is converted into machine language.
The process of converting source code in to machine code is called compiling.
Compiler is a program that compiles source code. Compiler also detects errors in source
program. If compiling is successful source program is converted into object program. Object
program is saved on disk. The extension of file is ".obj"
Linking in C programming Language: There are many built in functions
available in c programming language. These functions are also called library
functions. These functions are stored in different header files.

Loading program: The process of transferring a program from secondary storage


to main memory for execution is called loading a program. A program called loader
does loading.

Executing program: Execution is the last step. In this step program starts
execution. Its instructions start working and output of the program display on the
screen.
Pseudocode: is an artificial and informal language that helps programmers develop
algorithms. Pseudocode is very similar to everyday English.

Algorithm:
An algorithm is a description of a procedure which terminates with a result. Algorithm is a
step-by-step method of solving a problem.

Properties of an Algorithm:
1) Finiteness: - An algorithm terminates after a finite numbers of steps.
2) Definiteness: - Each step in algorithm is unambiguous. This means that the action
specified by the step cannot be interpreted (explain the meaning of) in multiple ways & can
be performed without any confusion.
3) Input: - An algorithm accepts zero or more inputs
4) Output:- An algorithm should produce at least one output.
5) Effectiveness: - It consists of basic instructions that are realizable. This means that the
instructions can be performed by using the given inputs in a finite amount of time.

Writing an algorithm
An algorithm can be written in English, like sentences and using mathematical
formulas. Sometimes algorithm written in English like language is Pseudo code.
Examples
1) Finding the average of three numbers
1. Let a,b,c are three integers
2. Let d is float
3. Display the message “Enter any three integers:”
4. Read three integers and stores in a,b,c
5. Compute the d = (a+b+c)/3.0
6. Display “The avg is:” , d
7. End.

 Example 1: Write an algorithm to determine a student‟s final grade and indicate whether
it is passing or failing. The final grade is calculated as the average of four marks.

Pseudocode::
 Input a set of 4 marks
 Calculate their average by summing and dividing by 4
 if average is below 50
Print “FAIL”
else
Print “PASS”

Flowcharts :
The pictorial representation of algorithm is called flowchart.

Uses of flow chart:

1 : flow chart helps to understand the program easily.

2 : as different symbols are used to specify the type of operation performed, it is easier to
understand the complex programs with the help of flowcharts.
Flowchart Symbols

S.NO Description Symbols

1 Flowlines : These are the left to right or top to


bottom lines connection symbols. These lines
shows the flow of control through the program.

2 Terminal Symbol : The oval shaped symbol


always begins and ends the flowchart. Every Start
flow chart starting and ending symbol is End
terminal symbol.

3 Input / Output symbol : The parallelogram is


used for both input (Read) and Output (Write)
is called I/O symbol. This symbol is used to
denote any function of an I/O device in the
program.

4 Process Symbol : The rectangle symbol is


called process symbol. It is used for calculations
and initialization of memory locations.

5 Decision symbol : The diamond shaped symbol


is called decision symbol. This box is used for
decision making. There will be always two
exists from a decision symbol one is labeled
YES and other labeled NO.
6 Connectors : The connector symbol is
represented by a circle. Whenever a complex
flowchart is morethan one page, in such a
situation, the connector symbols are used to
connect the flowchart.
System Development:
Or

Systems Requirements

Analysis

Design

Coding

System Test

Maintenance

1. Statement of Problem

a) Working with existing system and using proper questionnaire, the problem should be
explained
clearly.
b) What inputs are available, what outputs are required and what is needed for creating
workable solution, should be understood clearly.

2. Analysis
a) The method of solutions to solve the problem can be identified.
b) We also judge that which method gives best results among different methods of solution.

3. Design
a) Algorithms and flow charts will be prepared.
b) Focus on data, architecture, user interfaces and program components.
4. System Test
The algorithms and flow charts developed in the previous steps are converted into actual
programs in the high level languages like C.

a. Compilation
The process of translating the program into machine code is called as Compilation. Syntactic
errors are found quickly at the time of compiling the program. These errors occur due to the
usage of wrong syntaxes for the statements.
Eg: x=a*y+b
There is a syntax error in this statement, since, each and every statement in C language ends with
a semicolon (;).

b. Execution
The next step is Program execution. In this phase, we may encounter two types of errors.
Runtime Errors: these errors occur during the execution of the program and terminate the
program abnormally.
Logical Errors: these errors occur due to incorrect usage of the instructions in the program. These
errors are neither detected during compilation or execution nor cause any stoppage to the
program execution but produces incorrect output.

5. Maintenance
We are maintenance the software by updating the information, providing the security and license
for the software.

What is C?

C is a programming language developed at AT & T‟s Bell Laboratories of USA in 1972. It


was designed and written by Dennis Ritche. Dennis Ritchie is known as the founder of c language.

It was developed to overcome the problems of previous languages such as B, BCPL etc.

Initially, C language was developed to be used in UNIX operating system.

Features of C

1. Portability or machine independent


2. Sound and versatile language
3. Fast program execution.
4. An extendible language.
5. Tends to be a structured language.
Historical developments of C(Background)
Year Language Developed by Remarks

1960 ALGOL International committee Too general, too abstract

1967 BCPL Martin Richards at Could deal with only


Cambridge university specific problems

1970 B Ken Thompson at AT Could deal with only


&T specific problems

1972 C Dennis Ritche at AT & T Lost generality of BCPL and


B restored

General Structure of a C program:

/* Documentation section */
/* Link section */
/* Definition section */
/* Global declaration section */
main()
{
Declaration part
Executable part (statements)
}
/* Sub-program section */

 The documentation section is used for displaying any information about the
program like the purpose of the program, name of the author, date and time written
etc, and this section should be enclosed within comment lines. The statements in
the documentation section are ignored by the compiler.
 The link section consists of the inclusion of header files.
 The definition section consists of macro definitions, defining constants etc,.
 Anything declared in the global declaration section is accessible throughout
the program, i.e. accessible to all the functions in the program.
 main() function is mandatory for any program and it includes two parts, the
declaration part and the executable part.

 The last section, i.e. sub-program section is optional and used when we require
including user defined functions in the program.

First C Program
Before starting the abcd of C language, you need to learn how to write, compile and run the first
c program.

To write the first c program, open the C console and write the following code:

#include <stdio.h> includes the standard input output library functions. The printf() function
is defined in stdio.h .

#include <conio.h> includes the console input output library functions. The getch() function is
defined in conio.h file.

void main() The main() function is the entry point of every program in c language. The void
keyword specifies that it returns no value.

printf() The printf() function is used to print data on the console.

getch() The getch() function asks for a single character. Until you press any key, it blocks the
screen.
Valid Invalid

Ex : STDNAME Return

SUB $stay
TOT_MARKS 1RECOR
D
_TEMP STD
NAME.
Y2K
Types Data Types

Basic Data Type int, char, float, double

Derived Data Type array, pointer, structure, union

Enumeration Data Type enum

Void Data Type void


NOTE: WE CALL BASIC OR PRIMARY DATA TYPE

The basic data types are integer-based and floating-point based. C language supports both signed
and unsigned literals. The memory size of basic data types may change according to 32 or 64 bit
operating system. Let‟s see the basic data types. Its size is given according to 32 bit
architecture.
Size and Ranges of Data Types with Type Qualifiers
Type Size (bytes) Range Control String

char or signed char 1 -128 to 127 %c

unsigned char 1 0 to 255 %c

int or signed int 2 -32768 to 32767 %d or %i

unsigned int 2 0 to 65535 %u

short int or signed short 1 -128 to 127 %d or %i


int
unsigned short int 1 0 to 255 %d or %i

long int or signed long 4 -2147483648 to 2147483647 %ld


int
unsigned long int 4 0 to 4294967295 %lu

float 4 3.4E-38 to 3.4E+38 %f or %g

double 8 1.7E-308 to 1.7E+308 %lf

long double 10 3.4E-4932 to 1.1E+4932 %Lf

Variables
A variable is a name of memory location. It is used to store data. Variables are changeable, we can change
value of a variable during execution of a program. . It can be reused many times.

Note: Variable are nothing but identifiers.

Rules to write variable names:

1. A variable name contains maximum of 30 characters/ Variable name must be upto


8 characters.
2. A variable name includes alphabets and numbers, but it must start with an alphabet.
3. It cannot accept any special characters, blank spaces except under score( _ ).
4. It should not be a reserved word.
Constants :

Constants refer to fixed values that do not change during the execution of a program.

Note: constants are also called literals.


1: Decimal Integer : the rules for represent decimal integer.
a) Decimal Integer value which consist of digits from 0-9.
b) Decimal Integer value with base 10.
c) Decimal Integer should not prefix with 0.
d) It allows only sign (+,-).
e) No special character allowed in this integer.

Ex : valid invalid

7 $77

77 077

+77 7,777

-77

2 : Octal : An integer constants with base 8 is called octal. These rules are :
a) it consist of digits from 0 to 7.
b) It should prefix with 0.
c) It allows sign (+,-).
d) No special character is allowed.
EX : VALID INVALID
0123 123 -> it because no prefix with 0
+0123 0128 -> because digits from 0 to 7.
-0123

3 : Hexadecimal : An integer constant with base value 16 is called Hexadecimal.


a) It consist of digits from 0-9,a-f(capital letters & small leters.

Ex : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
b) it should prefix with 0X or 0x.
c) it allows sign (+,-).
d) No special character is allowed.

EX : OX1a, ox2f

4: Floating point/Real constants:

A floating point constant is a numeric constant that has either a fractional form or an exponent
form. For example:

-2.0

0.0000234

-0.22E-5

Note: E-5 = 10-5

Real Constants : Real constant is base 10 number, which is represented in decimal 0r


scientific/exponential notation.

Real Notation : The real notation is represented by an integer followed by a decimal point and
the fractional(decimal) part. It is possible to omit digits before or after the decimal point.

Ex : 15.25
.75
30
-9.52
-92
+.94

Scientific/Exponential Notation: The general form of Scientific/Exponential notation is

mantisa e exponent

The mantisa is either a real/floating point number expressed in decimal notation or an integer
and the exponent is an integer number with an optional sign. The character e separating the
mantisa and the exponent can be written in either lowercase or uppercase.

Ex : 1.5E-2
100e+3
-2.05e2

Character Constant:

Single Character Constant : A character constant is either a single alphabet, a single digit, a
single special symbol enclosed within single inverted commas.

a) it is value represent in „ „ (single quote).


b) The maximam length of a character constant can be 1 character.
EX : VALID INVALID
„a‟ “12”
„A‟ „ab

EX : “rama” , “a” , “+123” , “1-/a”

"good" //string constant

"" //null string constant

" " //string constant of six white space

"x" //string constant having single character.

"Earth is round\n" //prints string with newline

Escape characters or backslash characters:

a) \n newline
b) \r carriage return
c) \t tab
d) \v vertical tab
e) \b backspace
f) \f form feed (page feed)
g) \a alert (beep)
h) \‟ single quote(„)
i) \” double quote(“)
j) \? Question mark (?)
k) \\ backslash (\)

Two ways to define constant in C


There are two ways to define constant in C programming.
1. const keyword
2. #define
preprocessor 3.
1) C const keyword
The const keyword is used to define constant in C programming.
1. const float PI=3.14;
Now, the value of PI variable can't be changed.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. const float PI=3.14;
5. clrscr();
6. printf("The value of PI is: %f",PI);
7. getch();
8. }
Output:
The value of PI is: 3.140000

OPERATORS AND EXPRESSIONS:

Operators : An operator is a Symbol that performs an operation. An operators acts some


variables are called operands to get the desired result.

Ex : a+b;
Where a,b are operands and + is the operator.

Types of Operator :
1) Arithmetic Operators.
2) Relational Operators.
3) Logical Operators.
4) Assignment Operators.
5). Unary Operators.
6) Conditional Operators.
7) Special Operators.
8) Bitwise Operators.
9) Shift Operators.

Arithmetic Operators
An arithmetic operator performs mathematical operations such as addition, subtraction and
multiplication on numerical values (constants and variables).
C Program to demonstrate the working of arithmetic operators
#include <stdio.h>
void main()
{
int a = 9,b = 4, c;

c = a+b;
printf("a+b = %d \n",c);

c = a-b;
printf("a-b = %d \n",c);

c = a*b;
printf("a*b = %d \n",c);

c=a/b;
printf("a/b = %d \n",c);

c=a%b;
printf("Remainder when a divided by b = %d \n",c);

Output
a+b = 13
a-b = 5
a*b = 36
a/b = 2
Remainder when a divided by b=1

Relational Operators. A relational operator checks the relationship between two operands.
If the relation is true, it returns 1; if the relation is false, it returns value 0.
Operands may be variables, constants or expressions.

Relational operators are used in decision making and loops.

Operator Meaning Example Return value


< is less than 2<9 1
<= is less than or equal to 2<=2 1
> is greater than 2>9 0
>= is greater than or equal to 3>=2 1
== is equal to 2==3 0
!= is not equal to 2!=2 0

// C Program to demonstrate the working of relational operators

#include <stdio.h>

int main()

int a = 5, b = 5, c = 10;

printf("%d == %d = %d \n", a, b, a == b); // true


printf("%d == %d = %d \n", a, c, a == c); // false
printf("%d > %d = %d \n", a, b, a > b); //false
printf("%d <= %d = %d \n", a, c, a <= c); //true

return 0;

}
Logical Operators.

These operators are used to combine the results of two or more conditions. An expression
containing logical operator returns either 0 or 1 depending upon whether expression results true
or false. Logical operators are commonly used in decision making in C programming.

Operator Meaning Example Return value


&& Logical AND (9>2)&&(17>2) 1
|| Logical OR (9>2) || (17 = = 7) 1
! Logical NOT 29!=29 0
Logical AND : If any one condition false the complete condition becomes false.
Truth Table
Op1 Op2 Op1 && Op2
true true true
true false false
false true false
false false false
Logical OR : If any one condition true the complete condition becomes true.

Truth Table
Op1 Op2 Op1 // Op2
true true true
true false true
false true true
false false false

Logical Not : This operator reverses the value of the expression it operates on i.e, it makes a true
expression false and false expression true.

Op1 Op1 !
true false
false true

int main()

int a = 5, b = 5, c = 10, result;

result = (a = b) && (c > b);

printf("(a = b) && (c > b) equals to %d \n", result);

result = (a = b) && (c < b);

return 0;

}
Assignment Operators. Assignment operators are used to assign a value (or) an expression
(or) a value of a variable to another variable.

Syntax : variable name=expression (or) value (or) variable

Ex : x=10;
y=a+b;
z=p;

Compound assignment operator:

„C‟ provides compound assignment operators to assign a value to variable in order to assign a
new value to a variable after performing a specified operation.

Operator Example Meaning


+= x+=y x=x+y
-= x-=y x=x-y
*= x*=y x=x*y
/= x/=y x=x/y
%= x%=y X=x%y

Increment and Decrement Operators /Unary Operators:

Unary operators are having higher priority than the other operators. Unary operators, meaning
they only operate on a single operand. Increment

Operator in C Programming

1. Increment operator is used to increment the current value of variable by adding integer 1.

2. Increment operator can be applied to only variables.


3. Increment operator is denoted by ++.

We have two types of increment operator i.e Pre-Increment and Post-Increment

Operator. Pre-Increment

Pre-increment operator is used to increment the value of variable before using in the expression. In
the Pre-Increment value is first incremented and then used inside the expression.
b = ++y;

In this example suppose the value of variable „y‟ is 5 then value of variable „b‟ will be 6
because the value of „y‟ gets modified before using it in a expression.

Post-Increment

Post-increment operator is used to increment the value of variable as soon as after executing
expression completely in which post increment is used. In the Post-Increment value is first used
in a expression and then incremented.

b = x++;

In this example suppose the value of variable „x‟ is 5 then value of variable „b‟ will be 5
because old value of „x‟ is used.
b = ++5;

or

b = 5++;

The syntax of the operators is given below.

++<variable name> --<variable name>


<variable name>++ <variable name>--
The operator ++ adds 1 to the operand and – subtracts 1 from the operand. These operators in
two forms : prefix (++x) and postfix(x++).

Operator Meaning
++x Pre increment
- -x Pre decrement
x++ Post increment
x-- Post decrement

Where
1 : ++x : Pre increment, first increment and then do the operation.
2 : - -x : Pre decrement, first decrements and then do the
operation. 3 : x++ : Post increment, first do the operation and then
increment. 4 : x- - : Post decrement, first do the operation and then
decrement.
// C Program to demonstrate the working of increment and decrement operators
#include <stdio.h>
int main()
{
int a = 10, b = 100;
float c = 10.5, d = 100.5;
printf("++a = %d \n", +
+a); printf("--b = %d \n", --
b); printf("++c = %f \n", +
+c); printf("--d = %f \n", --
d); return 0;
}

Output
++a = 11
--b = 99
++c = 11.500000
++d = 99.500000
Note :

We cannot use increment operator on the constant values because increment operator operates on
only variables. It increments the value of the variable by 1 and stores the incremented value back
to the variable

Bitwise Operators:
Bitwise operators are used to manipulate the data at bit level. It operates on integers only. It
may not be applied to float.In arithmetic-logic unit (which is within the CPU), mathematical
operations like: addition, subtraction, multiplication and division are done in bit-level which makes
processing faster and saves power. To perform bit-level operations in C programming, bitwise operators
are used.

Operator Meaning
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
<< Shift left
>> Shift right
~ One‟s complement.

Bitwise AND operator &

The output of bitwise AND is 1 if the corresponding bits of two operands is 1. If either bit of an
operand is 0, the result of corresponding bit is evaluated to 0.
Let us suppose the bitwise AND operation of two integers
12 and 25. 12 = 00001100 (In Binary)
25 = 00011001 (In Binary)
Bitwise OR operator |

The output of bitwise OR is 1 if at least one corresponding bit of two operands is 1. In C


Programming, bitwise OR operator is denoted by |.
12 = 00001100 (In Binary)
25 = 00011001 (In Binary)
Bitwise OR Operation of 12 and 25
00001100
| 00011001

00011101 = 29 (In decimal)

Bitwise XOR (exclusive OR) operator ^

The result of bitwise XOR operator is 1 if the corresponding bits of two operands are opposite. It
is denoted by ^.
12 = 00001100 (In Binary)
25 = 00011001 (In Binary)
Bitwise XOR Operation of 12 and 25
00001100
| 00011001

00010101 = 21 (In decimal)

Bitwise complement operator ~

Bitwise compliment operator is an unary operator (works on only one operand). It changes 1 to 0
and 0 to 1. It is denoted by ~.
35 = 00100011 (In Binary)
Bitwise complement Operation of 35
~ 00100011

11011100 = 220 (In decimal)


Twist in bitwise complement operator in C Programming

The bitwise complement of 35 (~35) is -36 instead of 220, but why?

For any integer n, bitwise complement of n will be -(n+1). To understand this, you should have
the knowledge of 2's complement.
2's Complement

Two's complement is an operation on binary numbers. The 2's complement of a number is equal
to the complement of that number plus 1. For example:

Decimal Binary 2's complement

0 00000000 -(11111111+1) = -00000000 = -0(decimal)

1 00000001 -(11111110+1) = -11111111 = -256(decimal)

12 00001100 -(11110011+1) = -11110100 = -244(decimal)

220 11011100 -(00100011+1) = -00100100 = -36(decimal)

Note: Overflow is ignored while computing 2's complement.

The bitwise complement of 35 is 220 (in decimal). The 2's complement of 220 is -36. Hence, the
output is -36 instead of 220.

Bitwise complement of any number N is -(N+1). Here's how:

bitwise complement of N = ~N (represented in 2's complement form)

2'complement of ~N= -(~(~N)+1) = -(N+1)

There are two Bitwise shift operators in C programming:

 Right shift operator


 Left shift operator.

Right Shift Operator

Right shift operator shifts all bits towards right by certain number of specified bits. It is denoted
by >>.

Left Shift Operator


Left shift operator shifts all bits towards left by certain number of specified bits. It is denoted by
<<.

Special Operators

1 ) Comma Operator :The comma operator is used to separate the statement elements such as
variables, constants or expressions, and this operator is used to link the related expressions
together, such expressions can be evaluated from left to right and the value of right most
expressions is the value of combined expressions

Ex : val(a=3, b=9, c=77, a+c)


First signs the value 3 to a, then assigns 9 to b, then assigns 77 to c, and finaly80(3+77) to
value.
2 ) Sizeof Operator : The sizeof() is a unary operator, that returns the length in bytes o the
specified variable, and it is very useful to find the bytes occupied by the specified variable in
the memory.

Syntax : sizeof(variable-name);

int a;
Ex : sizeof(a); //OUTPUT- - - -2bytes

Expressions

Expressions : An expression is a combination of operators and operands which reduces to a


single value. An operator indicats an operation to be performed on data that yields a value. An
operand is a data item on which an operation is performed.

A simple expression contains only one operator.

Ex : 3+5 is a simple expression which yields a value 8, -a is also a single expression.


A complex expression contain more than one operator.
Ex : complex expression is 6+8*7.

Ex ; Algeberic Expressions C-expression


1 : ax2+bx+c 1: a*x*x+b*x+c
2 : a+bx 2 : a+b*x.
3 : 4ac/b 3 : 4*a*c/b.
4 : x2/y2-1 4 : x*x/y*y-1

Operator Precedence : Arithmetic Operators are evaluvated left to right using the
precedence of operator when the expression is written without the paranthesis.They are two
levels of arithmetic operators in C.

1 : High Priority * / %
2 : Low Priority + -.

Arithmetic Expression evaluation is carried out using the two phases from left to right.

1 : First phase : The highest priority operator are evaluated in the 1st phase.
2 : Second Phase : The lowest priority operator are evaluated in the 2nd phase.

Ex : a=x-y/3+z*2+p/4.
x=7, y=9, z=11, p=8.
a= 7-9/3+11*2+8/4.

1st phase :
1 : a = 7-3+11*2+8/4
2 : a = 7-3+22+8/4
3 : a = 7-3+22+2
2nd phase :
1 : a = 4+22+2
2 : a = 26+2
3 : a = 28

The order of evaluation can be changed by putting paranthesis in an expression.


Ex : 9-12/(3+3)*(2-1)

Whenever parentheses are used, the expressions within parantheses highest priority. If two or
more sets of paranthesis appear one after another. The expression contained in the left-most set is
evaluated first and the right-most in the last.
1st phase :
1 : 9-12/6*(2-1)
2 : 9-12/6*1
2nd phase :
1 : 9-2*1
2 : 9-2.
3rd phase :

You might also like