Programming in CLanguage
• Introduction to C
Language
• Symbols
• Keywords
• Identifiers
• Data Types
• Operators
• Various Statements
• Operator Precedence
• Type Conversion
• Conditional and Control
Structures
• Function
• Recursive Functions.
3.
Introduction to CLanguage
• The C programming language was devised by Dennis Ritchie at Bell
labs in 1972.
• C is a high-level programming language, meaning that it is possible to
express several pages of machine code in just a few lines of C code.
• Other examples of high-level languages are BASIC, C++, Fortran and
Pascal.
• They are so called because they are closer to human language than
machine languages.
4.
Introduction to CLanguage
• Such high-level languages allow a programmer to write
programs that are independent of particular types of
computer. This is called portability.
• Portability can be aided by using an agreed standard when
writing your program.
• A compiler is used to convert your high-level language
program into machine code that can be executed on a
computer.
5.
Why Learn CLanguage
• Compact, fast, and powerful
• “Mid-level” Language
• Standard for program development (wide acceptance)
• It is everywhere! (portable)
• Supports modular programming style
• Useful for all applications
• C is the native language of UNIX
• Easy to interface with system devices/assembly routines
• C is terse
6.
The components ofa C program
• The #include directive tells the compiler to include other files
stored on your HDD into your C program. These files will include
information that does not change between programs that your
program can use. On the right we include the standard input and
output library.
• The main() function is the only component that has to be included
in every C program. It is followed by a pair of braces: { }
• The return() statement returns values from a function. Within the
main() function return()can be used to tell the operating system (in
our case Linux) whether our code completed successfully.
All C programs have some common elements.
7.
Character Set
A characterdenotes any alphabet, digit or special symbol
used to represent information. Valid alphabets, numbers
and special symbols allowed in C are
• The alphabets, numbers and special symbols when properly combined form
constants, variables and keywords.
8.
Keywords
There are certainwords reserved for doing specific task,
these words are known as reserved word or keywords.
These words are predefined and always written in lower
case or small letter. These keywords can not be used as a
variable name as it assigned with fixed meaning. Some
examples:
• int
• short
• signed
• unsigne
d
• default
• volatile
• float
• while
• do
• extern
• register
• enum
• case
• long
• double
• break
• continue
• typedef
• static
• do
• for
• goto
• struct
• char
• auto
• union
• return
• const etc.
9.
Identifiers
These are userdefined word used to name of entities like variables, arrays,
functions, structures etc.
Rules for naming identifiers
Name should only consists of alphabets (both upper and lower case),
digits and underscore (_) sign.
First characters should be alphabet or underscore
Name should not be a keyword
Since C is a case sensitive, the upper case and lower case considered
differently, for example code, Code, CODE etc. are different identifiers.
Identifiers are generally given in some meaningful name such as
value, net_salary, age, data etc. An identifier name may be long, some
implementation recognizes only first eight characters, most recognize
31 characters. ANSI standard compiler recognize 31 characters. Some
invalid identifiers are 5cb, int, res#, avg no etc.
10.
Data Types
• Datatypes refer to an extensive system used for declaring
variables or functions of different types before its use. The
type of a variable determines how much space it occupies
in storage and how the bit pattern stored is interpreted.
The value of a variable can be changed any time
• Basic Built-in Data Types: int, float, double, char
• Enumeration Data Type: enum
• Derived Data Type: pointer, array, structure, union
• Void Data Type: void
11.
Data Types
• Avariable declared to be of type int can be used to contain integer values
only—that is, values that do not contain decimal places. A variable declared
to be of type float can be used for storing floating- point numbers (values
containing decimal places). The double type is the same as type float, only
with roughly twice the precision. The char data type can be used to store a
single character, such as the letter a, the digit character 6, or a semicolon
similarly A variable declared char can only store character type value.
• There are two types of type qualifier in c
• Size qualifier: short, long
• Sign qualifier: signed, unsigned
• When the qualifier unsigned is used the number is always positive, and when
signed is used number may be positive or negative. If the sign qualifier is not
mentioned, then by default sign qualifier is assumed. The range of values for
signed data types is less than that of unsigned data type. Because in signed
type, the left most bit is used to represent sign, while in unsigned type this bit
is also used to represent the value.
12.
Data Types
• Thesize and range of the different data types on a 16 bit machine is
given below:
13.
Constants
• Constant isa any value that cannot be changed during program
execution. In C, any number, single character, or character string is
known as a constant. A constant is an entity that doesn’t change whereas
a variable is an entity that may change. For example, the number 50
represents a constant integer value. The character string "Programming
in C is fun.n" is an example of a constant character string. C constants
can be divided into two major categories:
• Primary Constants
• Secondary Constants
• These constants are further categorized as
• Numeric constant
• Character constant
• String constant
14.
Constants
• Numeric constant:Numeric constant consists of digits. It required
minimum size of 2 bytes and max 4 bytes. It may be positive or negative
but by default sign is always positive. No comma or space is allowed
within the numeric constant and it must have at least 1 digit. The
allowable range for integer constants is -32768 to 32767. Truly speaking
the range of an Integer constant depends upon the compiler. For a 16-bit
compiler like Turbo C or Turbo C++ the range is –32768 to 32767. For a
32-bit compiler the range would be even greater. Mean by a 16-bit or a 32
bit compiler, what range of an Integer constant has to do with the type of
compiler.
• It is categorized as
• integer constant
• real constant.
15.
Constants
• Integer constantsare whole number which have no decimal point.
Types of integer constants are:
Decimal constant: 0 - 9 (base 10)
Octal constant: 0 – 7 (base 8)
Hexadecimal constant: 0 - 9, A – F (base 16)
In decimal constant first digit should not be zero unlike octal constant
first digit must be zero (as 076, 0127) and in hexadecimal constant first
two digit should be 0x/ 0X (such as 0x24, 0x87A).
By default type of integer constant is integer but if the value of
integer constant exceeds the range then the value represented by
integer type is taken to be unsigned integer or long integer. It can also
explicitly mention integer and unsigned integer type by suffix l/L and
u/U.
16.
Constants
• Real constants:This can also be regarded as Floating Point Constants. To
construct real constant we must follow the rule of ,
• Real constant must have at least one digit.
• It must have a decimal point.
• It could be either positive or negative.
• Default sign is positive.
• No commas or blanks are allowed within a real constant.
• Example.: +325.34
• 426.0
• -32.76
• To express small/large real constant exponent(scientific) form is used where number is
written in mantissa and exponent form separated by e/E. Exponent can be positive or
negative integer but mantissa can be real/integer type, for example 3.6*105
=3.6e+5. By
default type of floating point constant is double, it can also be explicitly defined it by
suffix of f/F.
17.
Constants
• Character constants:Character constant represented as
a single character enclosed within a single quote. These
can be single digit, single special symbol or white spaces
such as ‘9’,’c’,’$’, ‘ ’ etc. Every character constant has a
unique integer like value in machine’s character code as if
machine using ASCII (American standard code for
information interchange). Some numeric value associated
with each upper and lower case alphabets and decimal
integers are as:
• A - Z ASCII value (65-90)
• a - z ASCII value (97-122)
• 0 - 9 ASCII value (48-59)
• ; ASCII value (59)
18.
Constants
• String constants:Set of characters are called string and
when sequence of characters are enclosed within a double
quote (it may be combination of all kind of symbols) is a
string constant. String constant has zero, one or more than
one character and at the end of the string null character(
0) is automatically placed by compiler. Some examples are
“,sarathina” , “908”, “3”,” ”, “A” etc. In C although same
characters are enclosed within single and double quotes it
represents different meaning such as “A” and ‘A’ are
different because first one is string attached with null
character at the end but second one is character constant
with its corresponding ASCII value is 65.
19.
Constants
•Symbolic constants: Symbolicconstant is a
name that substitute for a sequence of
characters and, characters may be numeric,
character or string constant. These constant
are generally defined at the beginning of the
program as #define name value , here name
generally written in upper case for example
• #define MAX 10
• #define CH ‘b’
• #define NAME “sony”
20.
Variables
• Variable isa data name which is used to store some data
value or symbolic names for storing program
computations and results. The value of the variable can
be change during the execution. The rule for naming the
variables is same as the naming identifier. Before used in
the program it must be declared. Declaration of variables
specify its name, data types and range of the value that
variables can store depends upon its data types.
Syntax
• int a;
• char c;
• float f;
21.
Variables
• Variable initialization
Whenwe assign any initial value to variable during the
declaration, is called initialization of variables. When
variable is declared but contain undefined value then it is
called garbage value. The variable is initialized with the
assignment operator such as
Data type variable name=constant;
Example:
int a=20;
Or int a;
a=20;
22.
Expressions
• An expressionis a combination of variables, constants, operators and
function call.
• It can be arithmetic, logical and relational for example:-
• int z = x + y // arithmetic expression
• a > b //relational
• a == b // logical
• func (a, b) // function call
Expressions consisting entirely of constant values are called constant
expressions.
So, the expression 121 + 17 – 110 is a constant expression because each of the
terms of the expression is a constant value. But if J was declared to be an
integer variable, the expression
180 + 2 – J would not represent a constant expression.
23.
Operator
• This isa symbol use to perform some operation on variables,
operands or with the constant. Some operator required 2 operand
to perform operation or Some required single operation.
• Arithmetic Operator: Operators used for numeric calculation. Could be Uniary or
Binary Arithmetic Operator. Unary operator require only one operand as “+, -, ++. –”
(Addition, Subtraction, Multiplication, division)
Binary Operation require two operands and its operators are +(addition) –
(subtraction), * (multiplication), / (division), % (modulus)
Modulus cannot applied with floating point operand as well as there are no exponent
operator in c.
Unary (+) and Unary (-) is different from addition and subtraction
When both the operand are integer then it is called integer arithmetic and the result
is always integer. When both the operand are floating point then it is called floating
arithmetic and when operand is of integer and floating point then it is called mix type
or mixed mode arithmetic . And the result is in float type.
24.
Operator
• Assignment Operator:A value can be stored in a variable
with the use of assignment operator. The assignment
operator(=) is used in assignment statement and
assignment expression. Operand on the left hand side
should be variable and the operand on the right hand
side should be variable or constant or any expression.
When variable on the left and side is occur on the right
hand side then we can avoid by writing the compound
statement. For example
• Int x = y
• Int sum = x +y + z
25.
Operator
• Increment andDecrement Operator: The
Unary operator ++, --, is used as increment
and decrement which acts upon single
operand. Increment operator increases the
value of variable by one. Similarly
decrement operator decrease the value of
the variable by one. And these operator can
only used with the variable, but can't use
with expression and constant such as ++6 or
26.
Operator
• Increment andDecrement Operator (cntd): It is categorized into prefix & postfix . In the
prefix the value of the variable is incremented 1st, then the new value is used(such as +
+m, --m), where as in postfix the operator is written after the operand (such as m++,m--).
EXAMPLE
• let y = 12;
• z= ++y;
• y = y + 1;
• z = y;
• Similarly in the postfix increment and decrement operator is used in the operation. And
then increment and decrement is perform.
EXAMPLE
• let x= 5;
• y= x++;
• y=x;
• x= x+1
27.
Operator
• Relational Operator:It is use to compared
value of two expressions depending on their
relation. Expression that contain relational
operator is called relational expression.
Here the value is assign according to true or
false value.
• (a>=b) || (b>20)
• (b>a) && (e>b)
• 0&&(b!=7)
28.
Operator
• Conditional Operator:It sometimes called as ternary operator. Since it required
three expressions as operand and it is represented as (? , :).
• SYNTAX
exp1 ? exp2 :exp3
Here exp1 is first evaluated. It is true then value return will be exp2 . If false then
exp3.
EXAMPLE
void main()
{
int a=10, b=2
int s= (a>b) ? a:b;
printf(“value is:%d”);
}
Output:
Value is:10
29.
Operator
• Comma Operator:Comma operator is used to
permit different expression to appear in a
situation where only one expression would be
used. All the expression are separator by comma
and are evaluated from left to right.
EXAMPLE
int i, j;
for (i = 1, j = 2; i <= 5 && j <= 10; i++, j++)
30.
Operator
• Size ofOperator: Size of operator is a Unary operator, which gives size of
operand in terms of byte that occupied in the memory. An operand may be
variable, constant or data type qualifier.
Generally it is used make portable program(program that can be run on different
machine). It determines the length of entities, arrays and structures when their size
are not known to the programmer. It is also use to allocate size of memory dynamically
during execution of the program.
• EXAMPLE
#include <stdio.h>
int main() {
int sum;
float f;
printf("%zu%zu", sizeof(f),
sizeof(sum));
printf("%zu%zu", sizeof(235L),
sizeof('A'));
return 0;
}
31.
Operator
• Bitwise Operator:Bitwise operator permit programmer to access and manipulate data at bit
level. Various bitwise operator enlisted are
one's complement (~)
bitwise AND (&)
bitwise OR (|)
bitwise XOR (^)
left shift (<<)
right shift (>>)
These operator can operate on integer and character value but not on float and double. In
bitwise operator the function showbits( ) function is used to display the binary representation
of any integer or character value.
In one's complement all 0 changes to 1 and all 1 changes to 0. In the bitwise OR its value would
obtaining by 0 to 2 bits.
As the bitwise OR operator is used to set on a particular bit in a number. Bitwise AND the logical
AND. It operate on 2 operands and operands are compared on bit by bit basic. And hence both
the operands are of same type.
32.
Operator
• Logical orBoolean Operator: Operator used with one or more operand and
return either value zero (for false) or one (for true). The operand may be
constant, variables or expressions. And the expression that combines two or
more expressions is termed as logical expression. C language has three logical
operators :
Operator Meaning
&& AND
|| OR
! NOT
Where logical NOT is a unary operator and other two are binary
operator. Logical AND gives result true if both the conditions are true,
otherwise result is false. And logical OR gives result false if both the
condition false, otherwise result is true.
33.
Operator Precedence andAssociativity
Operators Description Precedence Level Associativity
()
[]
→
.
function call
array subscript
arrow operator
dot operator
1 left to right
+
-
++
--
!
~
*
&
(data type)
sizeof
unary plus
unary minus
Increment
decrement
logical not
1’s complement
Indirection
Address
type cast
size in byte
2 right to left
34.
Operator Precedence andAssociativity
Operators Description Precedence Level Associativity
*
/
%
multiplication
Division
modulus
3 left to right
+
-
Addition
Subtraction
4 left to right
<<
>>
left shift
right shift
5 left to right
<=
>=
<
>
less than equal to
greater than equal to
less than
greater than
6 left to right
==
!=
equal to
not equal to
7 left to right
35.
Operator Precedence andAssociativity
Operators Description Precedence Level Associativity
& bitwise XOR 9 left to right
| left to
right
&&
||
?:
bitwise OR
logical AND
logical OR
conditional operator
10
11
12
13
left to right
=, *=,
/=, %=
&=, ^=,
<<=
>>=
assignment operator 14 right to left
comma operator 15