Mod 1
Mod 1
Basics of ‘C’
By Swathi Sridharan
Asst. Prof. Dept,ISE
BNMIT
INTRODUCTION TO C
Programming languages
• Various programming languages
• Some understandable directly by computers
• Others require translation steps
1. Machine language
• Natural language of a particular computer
• Consists of strings of numbers(1s, 0s)
• Instruct computer to perform elementary
operations one at a time
• Machine dependent
2. Assembly Language
• English like abbreviations
• Translators programs called Assemblers to
convert assembly language programs to machine
language.
• E.g. add overtime to base pay and store result in
gross pay
• LOAD BASEPAY
• ADD OVERPAY
• STORE GROSSPAY
3. High-level languages
• To speed up programming even further
• Single statements for accomplishing substantial
tasks
• Translator programs called Compilers to convert
high-level programs into machine language
• E.g. add overtime to base pay and store result in
gross pay
grossPay basePay overtimePay
Before C?
• Evolved from two previous languages
• BCPL , B
• BCPL (Basic Combined Programming Language) used
for writing OS compilers
• B used for creating early versions of UNIX OS
• Both were typeless languages
• C language evolved from B
• Typeless no datatypes.
• Every data item
occupied 1 word in memory.
• In 1983, the American National Standards Institute (ANSI) established a
committee to provide a modern, comprehensive definition of C.
• The resulting definition, the ANSI standard, or ANSI C, was completed late
1988.
GENERAL ASPECT OF ‘C’
• C is a High level , general –purpose structured
programming language. Instructions of C
consists of certain English keywords such as if,
else, for ,do and while
• C contains certain additional features that
allows it to be used at a lower level , acting as
bridge between machine language and the
high level languages.
• This allows C to be used for system
programming as well as for applications
programming
Development with C
4 stages
• Editing Writing the source code by using some
IDE or editor
• Preprocessing or libraries Already available
routines
• compiling translates or converts source to
object code for a specific platform source
code- object code
• linking resolves external references and
produces the executable module
• Portable programs will run on any machine but..
• Note! Program correctness and robustness are most
important than program efficiency
THE CHARACTER SET OF ‘C’
• C language consist of some characters set, numbers and some
special symbols.
• The character set of C consist of all the alphabets of English
language.
• C consist of Alphabets a to z, A to Z
• Numeric 0 to 9
• Special Symbols {,},[,],?,+,-,*,/,%,!,;,and more
• The words formed from the character set are building blocks of C
and are also known as tokens.
• These tokens represent the individual entity of language.
• The following different types of token are used in C
1) Identifiers 2)Keywords 3)Constants
4) Operators 5)Punctuation Symbols
Identifiers
• A variable is nothing but a name given to a storage area that our programs can
manipulate. Each variable in C has a specific type, which determines the size and
layout of the variable's memory; the range of values that can be stored within that
memory; and the set of operations that can be applied to the variable.
• The name of a variable can be composed of letters, digits, and the underscore
character. It must begin with either a letter or an underscore. Upper and lowercase
letters are distinct because C is case-sensitive. There are following basic variable
types −
Type Description
• char Typically a single octet(one byte). This is an integer type.
• int The most natural size of integer for the machine.
• float A single-precision floating point value.
• double A double-precision floating point value.
• void Represents the absence of type.
Constants
Integer constants
• A integer constant is a numeric constant (associated with number)
without any fractional or exponential part. There are three types of
integer constants in C programming:
Floating-point 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
Character constants
• A character constant is a constant which uses single quotation
around characters. For example: 'a', 'l', 'm', 'F'
String constants
• String constants are the constants which are enclosed in a pair
of double-quote marks. For example: "good" ,"x","Earth is
round\n"
Escape Sequences
Sometimes, it is necessary to use characters which cannot be typed or has special
meaning in C programming. For example: newline(enter), tab, question mark etc.
In order to use these characters, escape sequence is used.
• For example: \n is used for newline. The backslash ( \ ) causes "escape" from the
normal way the characters are interpreted by the compiler.Escape
Sequences Character
• \b Backspace
• \f Form feed
• \n Newline
• \r Return
• \t Horizontal tab
• \v Vertical tab
• \\ Backslash
• \' Single quotation mark
• \" Double quotation mark
• \? Question mark
• \0 Null character
Operators in C:An operator is a symbol which operates on a value or a
variable. For example: + is an operator to perform addition.
9. Precedence of Operators
Increment and decrement
• C has two special unary operators called
increment ( ++ ) and decrement ( -- )
operators. These operators increment and
decrement value of a variable by 1 . ++x is
same as x = x + 1 or x += 1. --x is same as x = x -
1 or x -= 1. Increment and decrement
operators can be used only with variables.
ARRAYS
• It is a linear data structure that groups elements of
similar types and stores them continuous memory
location.
• Array subscript: Index Number.
• 1st element Index = 0
• Last element Index =
(Num of elements of array) – 1
Operations performed on arrays
1. Insertion.
2. Deletion.
3. Traversal.
4. Sorting.
5. Searching.
Array Declaration
• <data-type> <array_name>[row-subscript][col-
subscript] ;
• Example: int A[2][2];
Array Initilization
• <array_name>[row-index_number][column-
index_number] = <element>;
• Example: int A[1][0];
• <data-type><array_name> >[row-subscript][col-
subscript] ={element 1, element 2……. element
n};
• Example: int A[2][2]={1, 2, 6 , 9};
A[0][0]=1 A[0][1]=2 A[1][0]=6 A[1][1]=9
Array Size( in bytes)
• Size of a single dimensional array:
array size= row-size*column-size* size of data
type
Example:
int A[2][2]={10,20,30,40};
Size of A= 2*2*2=8 bytes
Array Representation
• Logical Representation of Multi Dimensional
array.
MULTI DIMENSIONAL ARRAY
Example:
STRINGS
• String is a sequence of characters
terminated with a null character \0
• Character array stores a group of characters
that collectively represent a string.
• Syntax: <data_type> <string name>[size] =
“string-characters”;
• Example: char str[10]=“hello”;
String Functions
// STRING LENGTH
#include <stdio.h>
#include <string.h>
int main( )
{
int len;
char array[20]= "hello.hi";
len = strlen(array) ;
printf ( "\string length = %d \n" , len ) ;
return 0;
}
// STRING REVERSE for(i=0;i<len;i++)
#include <stdio.h> revstr[len-i-1]=str[i];
#include <string.h> revstr[len]='\0';
void main() printf("Reverse of string
{ %s is: %s", str,revstr);
char str[30],revstr[30]; //getch();
int i,len; }
printf("Enter a string");
scanf("%s",&str);
//gets(str);
len=strlen(str);
// STRING CONCAT // concatenate s2 to s1
#include <stdio.h> for (j = 0; s2[j] != '\0'; ++j,
int main() { ++length) {
char s1[100] = "BNMIT ", s1[length] = s2[j];
s2[] = " Open elective "; }
int length, j; // terminating the s1 string
// store length of s1 in the s1[length] = '\0';
length variable printf("After concatenation:
length = 0; ");
while (s1[length] != '\0') { puts(s1);
++length; return 0;
} }
BUILT IN FUNCTIONS
• Any function that is provided as part of a high-
level language and can be executed by a
simple reference with specification of
arguments.
Structure in c
• A structure is a key word that create user
defined data type in C
• A structure creates a data type that can be
used to group items of possibly different types
into a single type.
• 'struct' keyword is used to create a structure.
Pointers
address of a= ?
value of a = ?
address of ptr= ?
value of ptr= ?
#include <stdio.h>
int main()
{
int a = 10;
int *p;
p = &a;
printf("p = %u\n", p);
printf("*p = %d\n", *p);
printf("&p = %u\n", &p);
printf("*&p = %u\n", *&p);
return 0;
a=*b+*c // Pointer expressions
z=z+*y;
*c=*ptr+5;