SlideShare a Scribd company logo
12/4/20151
CONSTANTS AND LITERALS
 Constants refer to fixed values that the program
may not alter during its execution. These fixed
values are also called literals.
 Constants can be of any of the basic data types
like an integer constant, a floating constant, a
character constant, or a string literal. There are
enumeration constants as well.
 Constants are treated just like regular variables
except that their values cannot be modified after
their definition.
12/4/2015
C-LANGUAGE
2
12/4/20153
Integer Literals
An integer literal can be a decimal, octal, or hexadecimal constant. A
prefix specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal,
and nothing for decimal.
An integer literal can also have a suffix that is a combination of U and
L, for unsigned and long, respectively. The suffix can be uppercase or
lowercase and can be in any order.
Here are some examples of integer literals:
Floating-point Literals
 A floating-point literal has an integer part, a decimal point, a
fractional part, and an exponent part. You can represent floating
point literals either in decimal form or exponential form.
 While representing decimal form, you must include the decimal
point, the exponent, or both; and while representing exponential
form, you must include the integer part, the fractional part, or both.
The signed exponent is introduced by e or E.
 Here are some examples of floating-point literals:
12/4/20154
 Character Constants
 Character literals are enclosed in single quotes, e.g.,
'x' can be stored in a simple variable of char type.
 A character literal can be a plain character (e.g., 'x'),
an escape sequence (e.g., 't'), or a universal character
(e.g., 'u02C0').
 There are certain characters in C that represent
special meaning when preceded by a backslash, for
example, newline (n) or tab (t). Here, you have a list of
such escape sequence codes:
12/4/20155
 Escape sequence Meaning
   character
 ' ' character
 " " character
 ? ? character
 a Alert or bell
 b Backspace
 f Form feed
 n Newline
 r Carriage return
 t Horizontal tab
 v Vertical tab
 ooo Octal number of one to three digits
 xhh . . . Hexadecimal number of one or more digits
12/4/20156
 Following is the example to show a few escape
sequence characters:
 #include <stdio.h>
 int main()
 {
 printf("HellotWorldnn");
 return 0;
 }
 When the above code is compiled and executed, it
produces the following result:
 Hello World
12/4/20157
 String Literals
 String literals or constants are enclosed in double quotes
"". A string contains characters that are similar to
character literals: plain characters, escape sequences,
and universal characters. C Programming.
 You can break a long line into multiple lines using string
literals and separating them using whitespaces.
 Here are some examples of string literals. All the three
forms are identical strings.
 "hello, dear"
 "hello, 
 dear"
 "hello, " "d" "ear"
12/4/20158
12/4/20159
There are two simple ways in C to define constants
• Using #define preprocessor
• Using const keyword
The #define Preprocessor
Given below is the form to use #define preprocessor to define a constant:
#define identifier value
• The following example explains it in detail:
#include <stdio.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE 'n'
int main()
{
int area;
area = LENGTH * WIDTH;
printf("value of area : %d", area);
printf("%c", NEWLINE);
return 0;
}
DEFINING CONSTANTS
 The const Keyword
 You can use const prefix to declare constants with a specific type as follows:
const type variable = value;
 The following example explains it in detail:
 include <stdio.h>
 int main()
 {
 const int LENGTH = 10;
 const int WIDTH = 5;
 const char NEWLINE = 'n';
 int area;
 area = LENGTH * WIDTH;
 printf("value of area : %d", area);
 printf("%c", NEWLINE);
 return 0;
 }
When the above code is compiled and executed, it produces the following result:
12/4/201510
value of area : 50
STORAGE CLASSES
 A storage class defines the scope (visibility) and
life-time of variables and/or functions within a C
Program. They precede the type that they modify.
We have four different storage classes in a C
program:
 auto
 register
 static
 extern
12/4/201511
 The auto Storage Class
 The auto storage class is the default storage class for all
local variables.
 {
 int mount;
 auto int month;
 }
 The example above
12/4/201512
 The example above defines two variables within the same
storage class. ‘auto’ can only be used within functions, i.e.,
local variables.
 The register Storage Class
 The register storage class is used to define local variables
that should be stored in a register instead of RAM. This
means that the variable has a maximum size equal to the
register size (usually one word) and can't have the unary '&'
operator applied to it (as it does not have a memory location).
 {
 register int miles;
 }
 The register should only be used for variables that require
quick access such as counters. It should also be noted that
defining 'register' does not mean that the variable will be
stored in a register. It means that it MIGHT be stored in a
register depending on hardware and implementation
restrictions.
12/4/201513
 THE STATIC STORAGE CLASS
 The static storage class instructs the compiler to keep a
local variable in existence during the life-time of the
program instead of creating and destroying it each time it
comes into and goes out of scope. Therefore, making
local variables static allows them to maintain their values
between function calls.
 The static modifier may also be applied to global
variables. When this is done, it causes that variable's
scope to be restricted to the file in which it is declared.
 In C programming, when static is used on a class data
member, it causes only one copy of that member to be
shared by all the objects of its class.
12/4/201514
First File: main.c
 #include <stdio.h>
 int count;
 extern void write_extern();
 main()
 {
 count = 5;
Second File: support.c
 write_extern();
 #include <stdio.h>
 extern int count;
 void write_extern(void)
 {
 printf("count is %dn", count);
 }
12/4/201515
 printf("count is %dn", count);
 }
 Here, extern is being used to declare count in the second
file, whereas it has its definition in the first file, main.c. Now,
compile these two files as follows:
 $gcc main.c support.c
 It will produce the executable program a.out. When this
program is executed, it produces the following result:
 5
12/4/201516
 9. OPERATORS
 An operator is a symbol that tells the compiler to perform
specific mathematical or logical functions. C language is rich
in built-in operators and provides the following types of
operators:
 Arithmetic Operators
 Relational Operators
 Logical Operators
 Bitwise Operators
 Assignment Operators
 Misc Operators
 We will, in this chapter, look into the way each operator
works.
12/4/201517
 Arithmetic Operators
 The following table shows all the arithmetic operators
supported by the C language. Assume variable A holds 10
and variable B holds 20, then: Operator Description
Example
 + Adds two operands. A + B = 30
 - Subtracts second operand from the first. A - B = -
10
 * Multiplies both operands. A * B = 200
 / Divides numerator by de-numerator. B / A = 2
 % Modulus Operator and remainder of after an integer
division. B % A = 0
 ++ Increment operator increases the integer value by one.
A++ = 11
12/4/201518
12/4/201519
Example
Try the following example to understand all the arithmetic operators available in
C:
#include <stdio.h>
main()
{
int a = 21;
int b = 10;
int c ;
c = a + b;
printf("Line 1 - Value of c is %dn", c );
c = a - b;
printf("Line 2 - Value of c is %dn", c );
c = a * b;
printf("Line 3 - Value of c is %dn", c );
c = a / b;
printf("Line 4 - Value of c is %dn", c );
c = a % b;
printf("Line 5 - Value of c is %dn", c );
c = a++;
printf("Line 6 - Value of c is %dn", c );
c = a--;
printf("Line 7 - Value of c is %dn", c );
 When you compile and execute the above program, it
produces the following result:
 Line 1 - Value of c is 31
 Line 2 - Value of c is 11
 Line 3 - Value of c is 210
 Line 4 - Value of c is 2
 Line 5 - Value of c is 1
 Line 6 - Value of c is 21
 Line 7 - Value of c is 22
12/4/201520
 Relational Operators
 The following table shows all the relational operators supported by C.
Assume variable A holds 10 and variable B holds 20, then: Operator
Description Example
 == Checks if the values of two operands are equal or not. If yes, then
the condition becomes true. (A == B) is not true.
 != Checks if the values of two operands are equal or not. If the values
are not equal, then the condition becomes true. (A != B) is true.
 > Checks if the value of left operand is greater than the value of right
operand. If yes, then the condition becomes true. (A > B) is not true.
 < Checks if the value of left operand is less than the value of right
operand. If yes, then the condition becomes true. (A < B) is true.
 >= Checks if the value of left operand is greater than or equal to the
value of right operand. If yes, then the condition becomes true. (A
>= B) is not true.
 <= Checks if the value of left operand is less than or equal to the value
of right operand. If yes, then the condition becomes true. (A <= B) is
true.
12/4/201521
 The following table shows all the relational operators supported by C.
Assume variable A holds 10 and variable B holds 20, then: Operator
Description Example
 == Checks if the values of two operands are equal or not. If yes, then
the condition becomes true. (A == B) is not true.
 != Checks if the values of two operands are equal or not. If the values
are not equal, then the condition becomes true. (A != B) is true.
 > Checks if the value of left operand is greater than the value of right
operand. If yes, then the condition becomes true. (A > B) is not true.
 < Checks if the value of left operand is less than the value of right
operand. If yes, then the condition becomes true. (A < B) is true.
 >= Checks if the value of left operand is greater than or equal to the
value of right operand. If yes, then the condition becomes true. (A
>= B) is not true.
 <= Checks if the value of left operand is less than or equal to the value
of right operand. If yes, then the condition becomes true. (A <= B) is
true
12/4/201522
 Example
 Try the following example to understand all the relational operators available in
C:
 #include <stdio.h>
 main()
 {
 int a = 21;
 int b = 10;
 int c ;
 if( a == b )
 {
 printf("Line 1 - a is equal to bn" );
 }
 else
12/4/201523
 {
 printf("Line 1 - a is not equal to bn" );
 }
 if ( a < b )
 {
 printf("Line 2 - a is less than bn" );
 }
 else
 {
 printf("Line 2 - a is not less than bn" );
 }
 if ( a > b )
 {
 printf("Line 3 - a is greater than bn" );
 }
 else
12/4/201524
 {
 printf("Line 3 - a is not greater than bn" );
 }
 /* Lets change value of a and b */
 a = 5;
 b = 20;
 if ( a <= b )
 {
 printf("Line 4 - a is either less than or equal to bn" );
 }
 if ( b >= a )
 {
 printf("Line 5 - b is either greater than or equal to bn" );
 }
 }
12/4/201525
QUTPUT
When you compile and execute the
above program, it produces the
following result:
Line 1 - a is not equal to b
Line 2 - a is not less than b
Line 3 - a is greater than b
Line 4 - a is either less than or equal
to b
Line 5 - b is either greater than or
equal to b
 LOGICAL OPERATORS
 Following table shows all the logical operators supported by C
language. Assume variable holds 1 and variable B holds 0, then:
Operator Description
 Example
• && Called Logical AND operator. If both the operands are non-zero,
then the condition becomes true. (A && B) is false.
• || Called Logical OR Operator. If any of the two (A || B) is true.
• ! Called Logical NOT Operator. It is used to reverse the logical state of
its operand.
 If a condition is true, then Logical NOT operator will make it false.
!(A && B) is true.
12/4/201526
 #include <stdio.h>
 main()
 {
 int a = 5;
 int b = 20;
 int c ;
 if ( a && b )
 {
 printf("Line 1 - Condition is truen" );
 }
 if ( a || b )
 {
 printf("Line 2 - Condition is truen" );
 }
 /* lets change the value of a and b */
 a = 0;
 b = 10;
 if ( a && b )
 {
 printf("Line 3 - Condition is truen" );
 }
12/4/201527
 else
 {
 printf("Line 3 - Condition is not truen" );
 }
 if ( !(a && b) )
 {
 printf("Line 4 - Condition is truen" );
 }
 }
 When you compile and execute the above program, it produces the
following result:
 Line 1 - Condition is true
 Line 2 - Condition is true
 Line 3 - Condition is not true
 Line 4 - Condition is true
12/4/201528
 Bitwise Operators
 Bitwise operators work on bits and perform bit-by-bit operation. The truth
table p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
 Assume A = 60 and B = 13; in binary format, they will be
as follows:
 A = 0011 1100
 B = 0000 1101
12/4/201529
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
 The following table lists the bitwise operators supported by C. Assume variable
‘A’ holds 60 and variable ‘B’ holds 13, then: Operator Description
Example
 & Binary AND Operator copies a bit to the result if it exists in both
operands. (A & B) = 12, i.e., 0000 1100
 | Binary OR Operator copies a bit if it exists in either operand. (A
| B) = 61, i.e., 0011 1101
 ^ Binary XOR Operator copies the bit if it is set in one operand but not
both. (A ^ B) = 49, i.e., 0011 0001
 ~ Binary Ones Complement Operator is unary and has the effect of 'flipping'
bits. (~A ) = -61, i.e., 1100 0011 in 2's complement form.
 << Binary Left Shift Operator. The left operands value is moved left by the
number of bits specified by the right operand. A << 2 = 240, i.e., 1111
0000
 >> Binary Right Shift Operator. The left operands value is moved right by the
number of bits specified by the right operand. A >> 2 = 15, i.e., 0000
1111
12/4/201530
 Example Try the following example to understand all the bitwise
operators available in C:
 #include <stdio.h>
 main()
{
 unsigned int a = 60; /* 60 = 0011 1100 */
 unsigned int b = 13; /* 13 = 0000 1101 */
 int c = 0;
 c = a & b; /* 12 = 0000 1100 */
 printf("Line 1 - Value of c is %dn", c );
 c = a | b; /* 61 = 0011 1101 */
 printf("Line 2 - Value of c is %dn", c );
 c = a ^ b; /* 49 = 0011 0001 */
 printf("Line 3 - Value of c is %dn", c );
 c = ~a; /*-61 = 1100 0011 */
 printf("Line 4 - Value of c is %dn", c );
 c = a << 2; /* 240 = 1111 0000 */
 printf("Line 5 - Value of c is %dn", c );
12/4/201531
 c = a >> 2; /* 15 = 0000 1111 */
 printf("Line 6 - Value of c is %dn", c );
 }
 When you compile and execute the above program, it
produces the following result:
 Line 1 - Value of c is 12
 Line 2 - Value of c is 61
 Line 3 - Value of c is 49
 Line 4 - Value of c is -61
 Line 5 - Value of c is 240
 Line 6 - Value of c is 15
12/4/201532
12/4/201533
 Assignment Operators
 The following tables lists the assignment operators supported by
the C language:
 = Simple assignment operator. Assigns values from right
side operands to left side operand. C = A + B will
assign the value of A + B to C
 += Add AND assignment operator. It adds the right
operand to the left operand and assigns the result to the
left operand. C += A is equivalent to C = C + A
 -= Subtract AND assignment operator. It subtracts the
right operand from the left operand and assigns the result
to the left operand. C -= A is equivalent to C = C - A
 *= Multiply AND assignment operator. It multiplies the
right operand with the left operand and assigns the result
to the left operand.
 /= Divide AND assignment operator. It divides
the left operand with the right operand and
assigns the result to the left operand. C /= A is
equivalent to C = C / A
 %= Modulus AND assignment operator. It takes
modulus using two operands and assigns the
result to the left operand. C %= A is equivalent to
C = C % A
 <<= Left shift AND assignment operator. C <<= 2
is same as C = C << 2
 >>= Right shift AND assignment operator.
C >>= 2 is same as C = C >> 2
 &= Bitwise AND assignment operator. C &= 2
is same as C = C & 2
12/4/201534

 ^= Bitwise exclusive OR and assignment
operator. C ^= 2 is same as C = C ^ 2
 |= Bitwise inclusive OR and assignment
operator. C |= 2 is same as C = C | 2
12/4/201535
 Example
 Try the following example to understand all the assignment operators
available in C:
 #include <stdio.h>
 main()
 {
 int a = 21;
 int c ;
 c = a;
 printf("Line 1 - = Operator Example, Value of c = %dn", c );
 c += a;
 printf("Line 2 - += Operator Example, Value of c = %dn", c );
 c -= a;
 printf("Line 3 - -= Operator Example, Value of c = %dn", c );
 c *= a;
 printf("Line 4 - *= Operator Example, Value of c = %dn", c );
12/4/201536
 c /= a;
 printf("Line 5 - /= Operator Example, Value of c = %dn", c );
 c = 200;
 c %= a;
 printf("Line 6 - %= Operator Example, Value of c = %dn", c );
 c <<= 2;
 printf("Line 7 - <<= Operator Example, Value of c = %dn", c );
 c >>= 2;
 printf("Line 8 - >>= Operator Example, Value of c = %dn", c );
 c &= 2;
 printf("Line 9 - &= Operator Example, Value of c = %dn", c );
 c ^= 2;
 printf("Line 10 - ^= Operator Example, Value of c = %dn", c );
12/4/201537
 c |= 2;
 printf("Line 11 - |= Operator Example, Value of c = %dn",
c );
 }
 When you compile and execute the above program, it
produces the following result:
 Line 1 - = Operator Example, Value of c = 21
 Line 2 - += Operator Example, Value of c = 42
 Line 3 - -= Operator Example, Value of c = 21
 Line 4 - *= Operator Example, Value of c = 441
 Line 5 - /= Operator Example, Value of c = 21
 Line 6 - %= Operator Example, Value of c = 11
 Line 7 - <<= Operator Example, Value of c = 44
 Line 8 - >>= Operator Example, Value of c = 11
12/4/201538
Line 9 - &= Operator Example, Value of c = 2
Line 10 - ^= Operator Example, Value of c = 0
Line 11 - |= Operator Example, Value of c = 2
 Misc Operators ↦sizeof & ternary
 Besides the operators discussed above, there are
a few other important operators including sizeof
and ? : supported by the C Language. Operator
Description Example
 sizeof() Returns the size of a variable.
sizeof(a), where a is integer, will return 4.
 & Returns the address of a variable. &a;
returns the actual address of the variable.
 * Pointer to a variable. *a;
 ? : Conditional Expression. If Condition is
true ? then value X : otherwise value Y
12/4/201539
12/4/201540
 Example
 Try following example to understand all the
miscellaneous operators available in C:
 #include <stdio.h>
 main()
 {
 int a = 4;
 short b;
 double c;
 int* ptr;
 /* example of sizeof operator */
 printf("Line 1 - Size of variable a = %dn", sizeof(a) );
 printf("Line 2 - Size of variable b = %dn", sizeof(b) );
 printf("Line 3 - Size of variable c= %dn", sizeof(c) );
 /* example of & and * operators */
 ptr = &a; /* 'ptr' now contains the address of 'a'*/
 printf("value of a is %dn", a);
 printf("*ptr is %d.n", *ptr);
 /* example of ternary operator */
 a = 10;
 b = (a == 1) ? 20: 30;
 printf( "Value of b is %dn", b );
 b = (a == 10) ? 20: 30;
 printf( "Value of b is %dn", b );
 }
 When you compile and execute the above program, it produces the following result:
 value of a is 4
 *ptr is 4.
 Value of b is 30
 Value of b is 20
12/4/201541
Operators Precedence in C
 Operator precedence determines the grouping of
terms in an expression and decides how an
expression is evaluated. Certain operators have
higher precedence than others; for example, the
multiplication operator has a higher precedence
than the addition operator.
 For example, x = 7 + 3 * 2; here, x is assigned 13,
not 20 because operator * has a higher
precedence than +, so it first gets multiplied with
3*2 and then adds into 7.
 Here, operators with the highest precedence
appear at the top of the table, those with the
lowest appear at the bottom. Within an
expression, higher precedence operators will be
evaluated first.
12/4/201542
 Category Operator Associativity
 Postfix () [] -> . ++ - - Left to right
 Unary + - ! ~ ++ - - (type)* & sizeof Right to left
 Multiplicative * / % Left to right
 Additive + - Left to right
 Shift << >> Left to right
 Relational < <= > >= Left to right
 Equality == != Left to right
 Bitwise AND & Left to right
 Bitwise XOR ^ Left to right
 Bitwise OR | Left to right
 Logical AND && Left to right
 Logical OR || Left to right
 Conditional ?: Right to left
 Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
 Comma , Left to right
12/4/201543
 Try the following example to understand operator precedence in
C:
 #include <stdio.h>
 main()
 {
 int a = 20;
 int b = 10;
 int c = 15;
 int d = 5;
 int e;
 e = (a + b) * c / d; // ( 30 * 15 ) / 5
 printf("Value of (a + b) * c / d is : %dn", e );
 e = ((a + b) * c) / d; // (30 * 15 ) / 5
 printf("Value of ((a + b) * c) / d is : %dn" , e );
12/4/201544
 e = (a + b) * (c / d); // (30) * (15/5)
 printf("Value of (a + b) * (c / d) is : %dn", e );
 e = a + (b * c) / d; // 20 + (150/5)
 printf("Value of a + (b * c) / d is : %dn" , e );
 return 0;
 }
 When you compile and execute the above program, it
produces the following result:
 Value of (a + b) * c / d is : 90
 Value of ((a + b) * c) / d is : 90
 Value of (a + b) * (c / d) is : 90
 Value of a + (b * c) / d is : 50
12/4/201545
12/4/201546

More Related Content

What's hot

datatypes and variables in c language
 datatypes and variables in c language datatypes and variables in c language
datatypes and variables in c language
Rai University
 
What is c
What is cWhat is c
What is c
Nitesh Saitwal
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]
Abhishek Sinha
 
Learn C# Programming - Operators
Learn C# Programming - OperatorsLearn C# Programming - Operators
Learn C# Programming - Operators
Eng Teong Cheah
 
CP Handout#2
CP Handout#2CP Handout#2
CP Handout#2
trupti1976
 
C fundamentals
C fundamentalsC fundamentals
C language basics
C language basicsC language basics
C language basics
Nikshithas R
 
C
CC
Unit ii chapter 2 Decision making and Branching in C
Unit ii chapter 2 Decision making and Branching in CUnit ii chapter 2 Decision making and Branching in C
Unit ii chapter 2 Decision making and Branching in C
Sowmya Jyothi
 
Programming in C [Module One]
Programming in C [Module One]Programming in C [Module One]
Programming in C [Module One]
Abhishek Sinha
 
pointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingpointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handling
Rai University
 
Learning the C Language
Learning the C LanguageLearning the C Language
Learning the C Language
nTier Custom Solutions
 
Sample for Simple C Program - R.D.Sivakumar
Sample for Simple C Program - R.D.SivakumarSample for Simple C Program - R.D.Sivakumar
Sample for Simple C Program - R.D.Sivakumar
Sivakumar R D .
 
Basic of c &c++
Basic of c &c++Basic of c &c++
Basic of c &c++
guptkashish
 
Conversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad balochConversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad baloch
Sarmad Baloch
 
CP Handout#1
CP Handout#1CP Handout#1
CP Handout#1
trupti1976
 
Operators and expressions in c language
Operators and expressions in c languageOperators and expressions in c language
Operators and expressions in c language
tanmaymodi4
 
C Language (All Concept)
C Language (All Concept)C Language (All Concept)
C Language (All Concept)
sachindane
 

What's hot (20)

datatypes and variables in c language
 datatypes and variables in c language datatypes and variables in c language
datatypes and variables in c language
 
What is c
What is cWhat is c
What is c
 
Concepts of C [Module 2]
Concepts of C [Module 2]Concepts of C [Module 2]
Concepts of C [Module 2]
 
Learn C# Programming - Operators
Learn C# Programming - OperatorsLearn C# Programming - Operators
Learn C# Programming - Operators
 
Input And Output
 Input And Output Input And Output
Input And Output
 
CP Handout#2
CP Handout#2CP Handout#2
CP Handout#2
 
C fundamentals
C fundamentalsC fundamentals
C fundamentals
 
C language basics
C language basicsC language basics
C language basics
 
C
CC
C
 
Unit ii chapter 2 Decision making and Branching in C
Unit ii chapter 2 Decision making and Branching in CUnit ii chapter 2 Decision making and Branching in C
Unit ii chapter 2 Decision making and Branching in C
 
Programming in C [Module One]
Programming in C [Module One]Programming in C [Module One]
Programming in C [Module One]
 
pointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handlingpointer, structure ,union and intro to file handling
pointer, structure ,union and intro to file handling
 
Learning the C Language
Learning the C LanguageLearning the C Language
Learning the C Language
 
Sample for Simple C Program - R.D.Sivakumar
Sample for Simple C Program - R.D.SivakumarSample for Simple C Program - R.D.Sivakumar
Sample for Simple C Program - R.D.Sivakumar
 
Basic of c &c++
Basic of c &c++Basic of c &c++
Basic of c &c++
 
Basic Input and Output
Basic Input and OutputBasic Input and Output
Basic Input and Output
 
Conversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad balochConversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad baloch
 
CP Handout#1
CP Handout#1CP Handout#1
CP Handout#1
 
Operators and expressions in c language
Operators and expressions in c languageOperators and expressions in c language
Operators and expressions in c language
 
C Language (All Concept)
C Language (All Concept)C Language (All Concept)
C Language (All Concept)
 

Similar to Presentation 2

C_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptxC_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptx
Likhil181
 
java or oops class not in kerala polytechnic 4rth semester nots j
java or oops class not in kerala polytechnic  4rth semester nots jjava or oops class not in kerala polytechnic  4rth semester nots j
java or oops class not in kerala polytechnic 4rth semester nots j
ishorishore
 
UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...
UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...
UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...
RSathyaPriyaCSEKIOT
 
fds unit1.docx
fds unit1.docxfds unit1.docx
fds unit1.docx
AzhagesvaranTamilsel
 
Introduction%20C.pptx
Introduction%20C.pptxIntroduction%20C.pptx
Introduction%20C.pptx
20EUEE018DEEPAKM
 
C programming(Part 1)
C programming(Part 1)C programming(Part 1)
C programming(Part 1)
SURBHI SAROHA
 
C program
C programC program
C program
AJAL A J
 
Esoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingEsoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programming
Rasan Samarasinghe
 
comp 122 Chapter 2.pptx,language semantics
comp 122 Chapter 2.pptx,language semanticscomp 122 Chapter 2.pptx,language semantics
comp 122 Chapter 2.pptx,language semantics
floraaluoch3
 
C Operators and Control Structures.pdf
C Operators and Control Structures.pdfC Operators and Control Structures.pdf
C Operators and Control Structures.pdf
MaryJacob24
 
C programming session 02
C programming session 02C programming session 02
C programming session 02Dushmanta Nath
 
Programming in C
Programming in CProgramming in C
Programming in C
Nishant Munjal
 
Reduce course notes class xii
Reduce course notes class xiiReduce course notes class xii
Reduce course notes class xii
Syed Zaid Irshad
 
Programming in C - interview questions.pdf
Programming in C - interview questions.pdfProgramming in C - interview questions.pdf
Programming in C - interview questions.pdf
SergiuMatei7
 
Unit i intro-operators
Unit   i intro-operatorsUnit   i intro-operators
Unit i intro-operators
HINAPARVEENAlXC
 
MCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit Dubey
MCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit DubeyMCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit Dubey
MCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit Dubey
kiranrajat
 

Similar to Presentation 2 (20)

Variable declaration
Variable declarationVariable declaration
Variable declaration
 
Unit 1
Unit 1Unit 1
Unit 1
 
C_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptxC_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptx
 
java or oops class not in kerala polytechnic 4rth semester nots j
java or oops class not in kerala polytechnic  4rth semester nots jjava or oops class not in kerala polytechnic  4rth semester nots j
java or oops class not in kerala polytechnic 4rth semester nots j
 
UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...
UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...
UNIT-1 notes(Data Types – Variables – Operations – Expressions and Statements...
 
fds unit1.docx
fds unit1.docxfds unit1.docx
fds unit1.docx
 
Introduction%20C.pptx
Introduction%20C.pptxIntroduction%20C.pptx
Introduction%20C.pptx
 
C programming(Part 1)
C programming(Part 1)C programming(Part 1)
C programming(Part 1)
 
C program
C programC program
C program
 
Esoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programmingEsoft Metro Campus - Certificate in c / c++ programming
Esoft Metro Campus - Certificate in c / c++ programming
 
comp 122 Chapter 2.pptx,language semantics
comp 122 Chapter 2.pptx,language semanticscomp 122 Chapter 2.pptx,language semantics
comp 122 Chapter 2.pptx,language semantics
 
C Operators and Control Structures.pdf
C Operators and Control Structures.pdfC Operators and Control Structures.pdf
C Operators and Control Structures.pdf
 
Csharp4 basics
Csharp4 basicsCsharp4 basics
Csharp4 basics
 
C programming session 02
C programming session 02C programming session 02
C programming session 02
 
Ch02
Ch02Ch02
Ch02
 
Programming in C
Programming in CProgramming in C
Programming in C
 
Reduce course notes class xii
Reduce course notes class xiiReduce course notes class xii
Reduce course notes class xii
 
Programming in C - interview questions.pdf
Programming in C - interview questions.pdfProgramming in C - interview questions.pdf
Programming in C - interview questions.pdf
 
Unit i intro-operators
Unit   i intro-operatorsUnit   i intro-operators
Unit i intro-operators
 
MCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit Dubey
MCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit DubeyMCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit Dubey
MCA 101-Programming in C with Data Structure UNIT I by Prof. Rohit Dubey
 

More from Army Public School and College -Faisal

INPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICESINPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICES
Army Public School and College -Faisal
 
INPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICESINPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICES
Army Public School and College -Faisal
 
SCANNERS /BARCODE
SCANNERS /BARCODE SCANNERS /BARCODE
3D PRINTERS
3D PRINTERS3D PRINTERS
Module 1 ELECTRONICS
Module 1  ELECTRONICSModule 1  ELECTRONICS
Module 1
Module 1 Module 1
Cookies may be set by the website you are visiting
Cookies may be set by the website you are visitingCookies may be set by the website you are visiting
Cookies may be set by the website you are visiting
Army Public School and College -Faisal
 
Boolean and comparison_instructions
Boolean and comparison_instructionsBoolean and comparison_instructions
Boolean and comparison_instructions
Army Public School and College -Faisal
 
Polymorphism (2)
Polymorphism (2)Polymorphism (2)
Lecture 1 progrmming with C
Lecture 1 progrmming with C Lecture 1 progrmming with C
Lecture 1 progrmming with C
Army Public School and College -Faisal
 

More from Army Public School and College -Faisal (20)

SENSOR WHITEBOARDS
SENSOR WHITEBOARDSSENSOR WHITEBOARDS
SENSOR WHITEBOARDS
 
INPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICESINPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICES
 
INPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICESINPUT AND OUTPUT DEVICES
INPUT AND OUTPUT DEVICES
 
2d and 3d cutters
2d and 3d cutters 2d and 3d cutters
2d and 3d cutters
 
SCANNERS /BARCODE
SCANNERS /BARCODE SCANNERS /BARCODE
SCANNERS /BARCODE
 
3D PRINTERS
3D PRINTERS3D PRINTERS
3D PRINTERS
 
Operaing system
Operaing systemOperaing system
Operaing system
 
Module 2 handouts part 2
Module 2 handouts part 2Module 2 handouts part 2
Module 2 handouts part 2
 
Module 2 handouts part 1
Module 2 handouts part 1Module 2 handouts part 1
Module 2 handouts part 1
 
Module 1 ELECTRONICS
Module 1  ELECTRONICSModule 1  ELECTRONICS
Module 1 ELECTRONICS
 
Module 1
Module 1 Module 1
Module 1
 
Cookies may be set by the website you are visiting
Cookies may be set by the website you are visitingCookies may be set by the website you are visiting
Cookies may be set by the website you are visiting
 
Css
CssCss
Css
 
python 1
python 1python 1
python 1
 
Boolean and comparison_instructions
Boolean and comparison_instructionsBoolean and comparison_instructions
Boolean and comparison_instructions
 
hadoop_module
hadoop_modulehadoop_module
hadoop_module
 
Polymorphism (2)
Polymorphism (2)Polymorphism (2)
Polymorphism (2)
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Lecture 1 progrmming with C
Lecture 1 progrmming with C Lecture 1 progrmming with C
Lecture 1 progrmming with C
 
Parallel processing Concepts
Parallel processing ConceptsParallel processing Concepts
Parallel processing Concepts
 

Recently uploaded

Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Chapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdfChapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdf
Kartik Tiwari
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
deeptiverma2406
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
kimdan468
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
Krisztián Száraz
 

Recently uploaded (20)

Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Chapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdfChapter -12, Antibiotics (One Page Notes).pdf
Chapter -12, Antibiotics (One Page Notes).pdf
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Best Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDABest Digital Marketing Institute In NOIDA
Best Digital Marketing Institute In NOIDA
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
 

Presentation 2

  • 2. CONSTANTS AND LITERALS  Constants refer to fixed values that the program may not alter during its execution. These fixed values are also called literals.  Constants can be of any of the basic data types like an integer constant, a floating constant, a character constant, or a string literal. There are enumeration constants as well.  Constants are treated just like regular variables except that their values cannot be modified after their definition. 12/4/2015 C-LANGUAGE 2
  • 3. 12/4/20153 Integer Literals An integer literal can be a decimal, octal, or hexadecimal constant. A prefix specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal, and nothing for decimal. An integer literal can also have a suffix that is a combination of U and L, for unsigned and long, respectively. The suffix can be uppercase or lowercase and can be in any order. Here are some examples of integer literals:
  • 4. Floating-point Literals  A floating-point literal has an integer part, a decimal point, a fractional part, and an exponent part. You can represent floating point literals either in decimal form or exponential form.  While representing decimal form, you must include the decimal point, the exponent, or both; and while representing exponential form, you must include the integer part, the fractional part, or both. The signed exponent is introduced by e or E.  Here are some examples of floating-point literals: 12/4/20154
  • 5.  Character Constants  Character literals are enclosed in single quotes, e.g., 'x' can be stored in a simple variable of char type.  A character literal can be a plain character (e.g., 'x'), an escape sequence (e.g., 't'), or a universal character (e.g., 'u02C0').  There are certain characters in C that represent special meaning when preceded by a backslash, for example, newline (n) or tab (t). Here, you have a list of such escape sequence codes: 12/4/20155
  • 6.  Escape sequence Meaning  character  ' ' character  " " character  ? ? character  a Alert or bell  b Backspace  f Form feed  n Newline  r Carriage return  t Horizontal tab  v Vertical tab  ooo Octal number of one to three digits  xhh . . . Hexadecimal number of one or more digits 12/4/20156
  • 7.  Following is the example to show a few escape sequence characters:  #include <stdio.h>  int main()  {  printf("HellotWorldnn");  return 0;  }  When the above code is compiled and executed, it produces the following result:  Hello World 12/4/20157
  • 8.  String Literals  String literals or constants are enclosed in double quotes "". A string contains characters that are similar to character literals: plain characters, escape sequences, and universal characters. C Programming.  You can break a long line into multiple lines using string literals and separating them using whitespaces.  Here are some examples of string literals. All the three forms are identical strings.  "hello, dear"  "hello,  dear"  "hello, " "d" "ear" 12/4/20158
  • 9. 12/4/20159 There are two simple ways in C to define constants • Using #define preprocessor • Using const keyword The #define Preprocessor Given below is the form to use #define preprocessor to define a constant: #define identifier value • The following example explains it in detail: #include <stdio.h> #define LENGTH 10 #define WIDTH 5 #define NEWLINE 'n' int main() { int area; area = LENGTH * WIDTH; printf("value of area : %d", area); printf("%c", NEWLINE); return 0; } DEFINING CONSTANTS
  • 10.  The const Keyword  You can use const prefix to declare constants with a specific type as follows: const type variable = value;  The following example explains it in detail:  include <stdio.h>  int main()  {  const int LENGTH = 10;  const int WIDTH = 5;  const char NEWLINE = 'n';  int area;  area = LENGTH * WIDTH;  printf("value of area : %d", area);  printf("%c", NEWLINE);  return 0;  } When the above code is compiled and executed, it produces the following result: 12/4/201510 value of area : 50
  • 11. STORAGE CLASSES  A storage class defines the scope (visibility) and life-time of variables and/or functions within a C Program. They precede the type that they modify. We have four different storage classes in a C program:  auto  register  static  extern 12/4/201511
  • 12.  The auto Storage Class  The auto storage class is the default storage class for all local variables.  {  int mount;  auto int month;  }  The example above 12/4/201512
  • 13.  The example above defines two variables within the same storage class. ‘auto’ can only be used within functions, i.e., local variables.  The register Storage Class  The register storage class is used to define local variables that should be stored in a register instead of RAM. This means that the variable has a maximum size equal to the register size (usually one word) and can't have the unary '&' operator applied to it (as it does not have a memory location).  {  register int miles;  }  The register should only be used for variables that require quick access such as counters. It should also be noted that defining 'register' does not mean that the variable will be stored in a register. It means that it MIGHT be stored in a register depending on hardware and implementation restrictions. 12/4/201513
  • 14.  THE STATIC STORAGE CLASS  The static storage class instructs the compiler to keep a local variable in existence during the life-time of the program instead of creating and destroying it each time it comes into and goes out of scope. Therefore, making local variables static allows them to maintain their values between function calls.  The static modifier may also be applied to global variables. When this is done, it causes that variable's scope to be restricted to the file in which it is declared.  In C programming, when static is used on a class data member, it causes only one copy of that member to be shared by all the objects of its class. 12/4/201514
  • 15. First File: main.c  #include <stdio.h>  int count;  extern void write_extern();  main()  {  count = 5; Second File: support.c  write_extern();  #include <stdio.h>  extern int count;  void write_extern(void)  {  printf("count is %dn", count);  } 12/4/201515
  • 16.  printf("count is %dn", count);  }  Here, extern is being used to declare count in the second file, whereas it has its definition in the first file, main.c. Now, compile these two files as follows:  $gcc main.c support.c  It will produce the executable program a.out. When this program is executed, it produces the following result:  5 12/4/201516
  • 17.  9. OPERATORS  An operator is a symbol that tells the compiler to perform specific mathematical or logical functions. C language is rich in built-in operators and provides the following types of operators:  Arithmetic Operators  Relational Operators  Logical Operators  Bitwise Operators  Assignment Operators  Misc Operators  We will, in this chapter, look into the way each operator works. 12/4/201517
  • 18.  Arithmetic Operators  The following table shows all the arithmetic operators supported by the C language. Assume variable A holds 10 and variable B holds 20, then: Operator Description Example  + Adds two operands. A + B = 30  - Subtracts second operand from the first. A - B = - 10  * Multiplies both operands. A * B = 200  / Divides numerator by de-numerator. B / A = 2  % Modulus Operator and remainder of after an integer division. B % A = 0  ++ Increment operator increases the integer value by one. A++ = 11 12/4/201518
  • 19. 12/4/201519 Example Try the following example to understand all the arithmetic operators available in C: #include <stdio.h> main() { int a = 21; int b = 10; int c ; c = a + b; printf("Line 1 - Value of c is %dn", c ); c = a - b; printf("Line 2 - Value of c is %dn", c ); c = a * b; printf("Line 3 - Value of c is %dn", c ); c = a / b; printf("Line 4 - Value of c is %dn", c ); c = a % b; printf("Line 5 - Value of c is %dn", c ); c = a++; printf("Line 6 - Value of c is %dn", c ); c = a--; printf("Line 7 - Value of c is %dn", c );
  • 20.  When you compile and execute the above program, it produces the following result:  Line 1 - Value of c is 31  Line 2 - Value of c is 11  Line 3 - Value of c is 210  Line 4 - Value of c is 2  Line 5 - Value of c is 1  Line 6 - Value of c is 21  Line 7 - Value of c is 22 12/4/201520
  • 21.  Relational Operators  The following table shows all the relational operators supported by C. Assume variable A holds 10 and variable B holds 20, then: Operator Description Example  == Checks if the values of two operands are equal or not. If yes, then the condition becomes true. (A == B) is not true.  != Checks if the values of two operands are equal or not. If the values are not equal, then the condition becomes true. (A != B) is true.  > Checks if the value of left operand is greater than the value of right operand. If yes, then the condition becomes true. (A > B) is not true.  < Checks if the value of left operand is less than the value of right operand. If yes, then the condition becomes true. (A < B) is true.  >= Checks if the value of left operand is greater than or equal to the value of right operand. If yes, then the condition becomes true. (A >= B) is not true.  <= Checks if the value of left operand is less than or equal to the value of right operand. If yes, then the condition becomes true. (A <= B) is true. 12/4/201521
  • 22.  The following table shows all the relational operators supported by C. Assume variable A holds 10 and variable B holds 20, then: Operator Description Example  == Checks if the values of two operands are equal or not. If yes, then the condition becomes true. (A == B) is not true.  != Checks if the values of two operands are equal or not. If the values are not equal, then the condition becomes true. (A != B) is true.  > Checks if the value of left operand is greater than the value of right operand. If yes, then the condition becomes true. (A > B) is not true.  < Checks if the value of left operand is less than the value of right operand. If yes, then the condition becomes true. (A < B) is true.  >= Checks if the value of left operand is greater than or equal to the value of right operand. If yes, then the condition becomes true. (A >= B) is not true.  <= Checks if the value of left operand is less than or equal to the value of right operand. If yes, then the condition becomes true. (A <= B) is true 12/4/201522
  • 23.  Example  Try the following example to understand all the relational operators available in C:  #include <stdio.h>  main()  {  int a = 21;  int b = 10;  int c ;  if( a == b )  {  printf("Line 1 - a is equal to bn" );  }  else 12/4/201523
  • 24.  {  printf("Line 1 - a is not equal to bn" );  }  if ( a < b )  {  printf("Line 2 - a is less than bn" );  }  else  {  printf("Line 2 - a is not less than bn" );  }  if ( a > b )  {  printf("Line 3 - a is greater than bn" );  }  else 12/4/201524
  • 25.  {  printf("Line 3 - a is not greater than bn" );  }  /* Lets change value of a and b */  a = 5;  b = 20;  if ( a <= b )  {  printf("Line 4 - a is either less than or equal to bn" );  }  if ( b >= a )  {  printf("Line 5 - b is either greater than or equal to bn" );  }  } 12/4/201525 QUTPUT When you compile and execute the above program, it produces the following result: Line 1 - a is not equal to b Line 2 - a is not less than b Line 3 - a is greater than b Line 4 - a is either less than or equal to b Line 5 - b is either greater than or equal to b
  • 26.  LOGICAL OPERATORS  Following table shows all the logical operators supported by C language. Assume variable holds 1 and variable B holds 0, then: Operator Description  Example • && Called Logical AND operator. If both the operands are non-zero, then the condition becomes true. (A && B) is false. • || Called Logical OR Operator. If any of the two (A || B) is true. • ! Called Logical NOT Operator. It is used to reverse the logical state of its operand.  If a condition is true, then Logical NOT operator will make it false. !(A && B) is true. 12/4/201526
  • 27.  #include <stdio.h>  main()  {  int a = 5;  int b = 20;  int c ;  if ( a && b )  {  printf("Line 1 - Condition is truen" );  }  if ( a || b )  {  printf("Line 2 - Condition is truen" );  }  /* lets change the value of a and b */  a = 0;  b = 10;  if ( a && b )  {  printf("Line 3 - Condition is truen" );  } 12/4/201527
  • 28.  else  {  printf("Line 3 - Condition is not truen" );  }  if ( !(a && b) )  {  printf("Line 4 - Condition is truen" );  }  }  When you compile and execute the above program, it produces the following result:  Line 1 - Condition is true  Line 2 - Condition is true  Line 3 - Condition is not true  Line 4 - Condition is true 12/4/201528
  • 29.  Bitwise Operators  Bitwise operators work on bits and perform bit-by-bit operation. The truth table p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1  Assume A = 60 and B = 13; in binary format, they will be as follows:  A = 0011 1100  B = 0000 1101 12/4/201529
  • 30. A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011  The following table lists the bitwise operators supported by C. Assume variable ‘A’ holds 60 and variable ‘B’ holds 13, then: Operator Description Example  & Binary AND Operator copies a bit to the result if it exists in both operands. (A & B) = 12, i.e., 0000 1100  | Binary OR Operator copies a bit if it exists in either operand. (A | B) = 61, i.e., 0011 1101  ^ Binary XOR Operator copies the bit if it is set in one operand but not both. (A ^ B) = 49, i.e., 0011 0001  ~ Binary Ones Complement Operator is unary and has the effect of 'flipping' bits. (~A ) = -61, i.e., 1100 0011 in 2's complement form.  << Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand. A << 2 = 240, i.e., 1111 0000  >> Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand. A >> 2 = 15, i.e., 0000 1111 12/4/201530
  • 31.  Example Try the following example to understand all the bitwise operators available in C:  #include <stdio.h>  main() {  unsigned int a = 60; /* 60 = 0011 1100 */  unsigned int b = 13; /* 13 = 0000 1101 */  int c = 0;  c = a & b; /* 12 = 0000 1100 */  printf("Line 1 - Value of c is %dn", c );  c = a | b; /* 61 = 0011 1101 */  printf("Line 2 - Value of c is %dn", c );  c = a ^ b; /* 49 = 0011 0001 */  printf("Line 3 - Value of c is %dn", c );  c = ~a; /*-61 = 1100 0011 */  printf("Line 4 - Value of c is %dn", c );  c = a << 2; /* 240 = 1111 0000 */  printf("Line 5 - Value of c is %dn", c ); 12/4/201531
  • 32.  c = a >> 2; /* 15 = 0000 1111 */  printf("Line 6 - Value of c is %dn", c );  }  When you compile and execute the above program, it produces the following result:  Line 1 - Value of c is 12  Line 2 - Value of c is 61  Line 3 - Value of c is 49  Line 4 - Value of c is -61  Line 5 - Value of c is 240  Line 6 - Value of c is 15 12/4/201532
  • 33. 12/4/201533  Assignment Operators  The following tables lists the assignment operators supported by the C language:  = Simple assignment operator. Assigns values from right side operands to left side operand. C = A + B will assign the value of A + B to C  += Add AND assignment operator. It adds the right operand to the left operand and assigns the result to the left operand. C += A is equivalent to C = C + A  -= Subtract AND assignment operator. It subtracts the right operand from the left operand and assigns the result to the left operand. C -= A is equivalent to C = C - A  *= Multiply AND assignment operator. It multiplies the right operand with the left operand and assigns the result to the left operand.
  • 34.  /= Divide AND assignment operator. It divides the left operand with the right operand and assigns the result to the left operand. C /= A is equivalent to C = C / A  %= Modulus AND assignment operator. It takes modulus using two operands and assigns the result to the left operand. C %= A is equivalent to C = C % A  <<= Left shift AND assignment operator. C <<= 2 is same as C = C << 2  >>= Right shift AND assignment operator. C >>= 2 is same as C = C >> 2  &= Bitwise AND assignment operator. C &= 2 is same as C = C & 2 12/4/201534
  • 35.   ^= Bitwise exclusive OR and assignment operator. C ^= 2 is same as C = C ^ 2  |= Bitwise inclusive OR and assignment operator. C |= 2 is same as C = C | 2 12/4/201535
  • 36.  Example  Try the following example to understand all the assignment operators available in C:  #include <stdio.h>  main()  {  int a = 21;  int c ;  c = a;  printf("Line 1 - = Operator Example, Value of c = %dn", c );  c += a;  printf("Line 2 - += Operator Example, Value of c = %dn", c );  c -= a;  printf("Line 3 - -= Operator Example, Value of c = %dn", c );  c *= a;  printf("Line 4 - *= Operator Example, Value of c = %dn", c ); 12/4/201536
  • 37.  c /= a;  printf("Line 5 - /= Operator Example, Value of c = %dn", c );  c = 200;  c %= a;  printf("Line 6 - %= Operator Example, Value of c = %dn", c );  c <<= 2;  printf("Line 7 - <<= Operator Example, Value of c = %dn", c );  c >>= 2;  printf("Line 8 - >>= Operator Example, Value of c = %dn", c );  c &= 2;  printf("Line 9 - &= Operator Example, Value of c = %dn", c );  c ^= 2;  printf("Line 10 - ^= Operator Example, Value of c = %dn", c ); 12/4/201537
  • 38.  c |= 2;  printf("Line 11 - |= Operator Example, Value of c = %dn", c );  }  When you compile and execute the above program, it produces the following result:  Line 1 - = Operator Example, Value of c = 21  Line 2 - += Operator Example, Value of c = 42  Line 3 - -= Operator Example, Value of c = 21  Line 4 - *= Operator Example, Value of c = 441  Line 5 - /= Operator Example, Value of c = 21  Line 6 - %= Operator Example, Value of c = 11  Line 7 - <<= Operator Example, Value of c = 44  Line 8 - >>= Operator Example, Value of c = 11 12/4/201538
  • 39. Line 9 - &= Operator Example, Value of c = 2 Line 10 - ^= Operator Example, Value of c = 0 Line 11 - |= Operator Example, Value of c = 2  Misc Operators ↦sizeof & ternary  Besides the operators discussed above, there are a few other important operators including sizeof and ? : supported by the C Language. Operator Description Example  sizeof() Returns the size of a variable. sizeof(a), where a is integer, will return 4.  & Returns the address of a variable. &a; returns the actual address of the variable.  * Pointer to a variable. *a;  ? : Conditional Expression. If Condition is true ? then value X : otherwise value Y 12/4/201539
  • 40. 12/4/201540  Example  Try following example to understand all the miscellaneous operators available in C:  #include <stdio.h>  main()  {  int a = 4;  short b;  double c;  int* ptr;  /* example of sizeof operator */
  • 41.  printf("Line 1 - Size of variable a = %dn", sizeof(a) );  printf("Line 2 - Size of variable b = %dn", sizeof(b) );  printf("Line 3 - Size of variable c= %dn", sizeof(c) );  /* example of & and * operators */  ptr = &a; /* 'ptr' now contains the address of 'a'*/  printf("value of a is %dn", a);  printf("*ptr is %d.n", *ptr);  /* example of ternary operator */  a = 10;  b = (a == 1) ? 20: 30;  printf( "Value of b is %dn", b );  b = (a == 10) ? 20: 30;  printf( "Value of b is %dn", b );  }  When you compile and execute the above program, it produces the following result:  value of a is 4  *ptr is 4.  Value of b is 30  Value of b is 20 12/4/201541
  • 42. Operators Precedence in C  Operator precedence determines the grouping of terms in an expression and decides how an expression is evaluated. Certain operators have higher precedence than others; for example, the multiplication operator has a higher precedence than the addition operator.  For example, x = 7 + 3 * 2; here, x is assigned 13, not 20 because operator * has a higher precedence than +, so it first gets multiplied with 3*2 and then adds into 7.  Here, operators with the highest precedence appear at the top of the table, those with the lowest appear at the bottom. Within an expression, higher precedence operators will be evaluated first. 12/4/201542
  • 43.  Category Operator Associativity  Postfix () [] -> . ++ - - Left to right  Unary + - ! ~ ++ - - (type)* & sizeof Right to left  Multiplicative * / % Left to right  Additive + - Left to right  Shift << >> Left to right  Relational < <= > >= Left to right  Equality == != Left to right  Bitwise AND & Left to right  Bitwise XOR ^ Left to right  Bitwise OR | Left to right  Logical AND && Left to right  Logical OR || Left to right  Conditional ?: Right to left  Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left  Comma , Left to right 12/4/201543
  • 44.  Try the following example to understand operator precedence in C:  #include <stdio.h>  main()  {  int a = 20;  int b = 10;  int c = 15;  int d = 5;  int e;  e = (a + b) * c / d; // ( 30 * 15 ) / 5  printf("Value of (a + b) * c / d is : %dn", e );  e = ((a + b) * c) / d; // (30 * 15 ) / 5  printf("Value of ((a + b) * c) / d is : %dn" , e ); 12/4/201544
  • 45.  e = (a + b) * (c / d); // (30) * (15/5)  printf("Value of (a + b) * (c / d) is : %dn", e );  e = a + (b * c) / d; // 20 + (150/5)  printf("Value of a + (b * c) / d is : %dn" , e );  return 0;  }  When you compile and execute the above program, it produces the following result:  Value of (a + b) * c / d is : 90  Value of ((a + b) * c) / d is : 90  Value of (a + b) * (c / d) is : 90  Value of a + (b * c) / d is : 50 12/4/201545