Title: Pointers
1- Pointers
- Pointer is a user defined data type which
creates special types of variables which can hold
the address of primitive data type like char,
int, float, double or user defined data type like
function, pointer etc. or derived data type like
array, structure, union, enum. - Examples int ptr
- int (ptr)()
- int (ptr)2
- In c programming every variable keeps two type of
value. - 1. Contain of variable or value of variable.
- 2. Address of variable where it has stored in the
memory. - (1) Meaning of following simple pointer
declaration and definition - int a5
- int ptr
- ptra
-
2- Explanation
- About variable a
- 1. Name of variable a
- 2. Value of variable which it keeps 5
- 3. Address where it has stored in memory 1025
(assume) - About variable ptr4. Name of variable ptr
- 5. Value of variable which it keeps 1025
- 6. Address where it has stored in memory 5000
(assume) - Note A variable where it will be stored in
memory is decided by operating system. We cannot
guess at which location a particular variable
will be stored in memory.
3 4- Example
- includeltstdio.hgt
- includeltconio.hgt
- void main()
-
- int i9
- clrscr()
-
- printf("Value of i d\n",i)
- printf("Address of i u\n",i)
- printf("Value at address of i d",(i))
- getch()
-
- Output
- The values of i9
- Address of i65524
- Value at address of i9
5- Passing pointers to function
- C provides a special feature of pointer to a
function. Every function defined in C language
have a base address attached to it. This base
address acts as an entering point into that
function. - This address can be stored in a pointer known as
function pointer. The pointer to a function is
the declaration of pointer that holds the base
address of the function. - Syntax return_type ( pointer_name) (
variable1_type variable1_name , variable2_type
variable2_name , variable3_type variable3_name
.................)
6- Example
- int (function_pointer) (int,int,int)
- Program Coding
- include ltstdio.hgt
- include ltconio.hgt
- int mul(int a, int b, int c)
- return abc
-
- void main()
- int (function_pointer)(int, int, int) func
tion_pointer mul printf("The product of three
numbers isd", function_pointer(2, 3, 4)) g
etch() -
- Output
- The product of three numbers is24
7- Operations in Pointers
- Eight basic operations that can be performed
with pointer variables. In addition to these
operations, you can use the relational operators
to compare pointers. - pointer reference by an arithmetic operation. For
example - int x 5, ip x
- ip
- Array of Pointers
- A pointer is a variable that contains the
memory location of another variable. The values
you assign to the pointers are memory addresses
of other variables (or other pointers). A running
program gets a certain space in the main memory. - Syntax of declaring a pointer data_type_name
variable name
8- Pointer Operators- and
- C provides two special operators known as
pointer operators. They are and .They are
and . stands for Address of and it is used to
retrieve the address of a variable. stands for
value at address and it is used to access the
value at a location by means of its address. - Syntax
- data-type variable-name
- Example
- int ip
- where,ip is declared to be a pointer variable of
int type - Example
- includeltstdio.hgt
- includeltconio.hgt
- void main()
-
- int i10,ip
9- float f3.4 fp
- char ca cp
- clrscr()
- printf(id \n,i)
- printf(ff \n,f)
- printf(cc \n,c)
- ipi
- printf(\n Address of iu \n,ip)
- printf(Value of id \n,ip)
- fpf
- printf(\n Address of fu \n,fp)
- printf(Value of ff \n,fp)
- cpc
- printf(\n Address of cu \n,cp)
- printf(Value of cc \n,cp)
- getch()
-
-
10- Pointers and Arrays
- Elements of an array are accessed through
pointers internally. - 1.Pointers and One-Dimensional Arrays
- Consider one-dimensional arrays and pointers.
Suppose a is a one-dimensional array of int type
and of size 10. - int a10
- Since a is the address of a0,a is the
element stored in the first location.(a1) gives
the address of the second element a1 of the
array.(a1) gives the element itself stored at
a1.Similary,(a2) is the address of a2 and
a(a2) is the value at a2. - For Ex
- a(a0)a0
- (a1)a1
- (a2)a2
- (a3)a3
- .
- (ai)ai
11- includeltstdio.hgt
- void main()
-
- int a10,n,I
- clrscr()
- printf(Enter no. of elements \n)
- scanf(d,n)
- printf(Enter d elements \n,n)
- for(i0iltni)
- scanf(d,ai)
- printf(The list if elements \n)
- for(i0iltni)
- printf(d \n,(ai))
- getch()
-
- Enter no. of elements
- 5
- Enter 5 elements
- 1 2 3 4 5
- The list of items
- 1 2 3 4 5
12- Pointers and Two-dimensional Arrays
- a is an array of two dimensions of int
type,which is declared as - int a23
- The array name a gives its base address,i.e.,
the address of its first element. - For example,
- ((a1)0) gives the first element in the
1st array a00 - ((a1)1) gives the first element in the
1st array a01 - ((a1)2) gives the first element in the
1st array a02 - In general,aij can be written as ((ai)j)
13- Example
- includeltstdio.hgt
- includeltconio.hgt
- void main()
-
- int a33,m,n,I,j
- clrscr()
- printf(Enter the order of the matrix a \n)
- scanf(dd,m,n)
- printf(Enter elements of the matrix a of
order d d \n,m,n) - for(i0iltmi)
- for(j0jltnj)
- scanf(d,(ai)j)
- printf(Matrix a \n)
- for(i0iltmi)
-
- for(j0jltnj)
- printf(4d,(a(a1)j))
- printf(\n)
-
- getch()
-
- Output
- Enter the order of the matrix a
- 2
- Enter elements of the matrix a of order 22
- 2 3 4
- Matrix a
- 1 2
- 3 4
14- Arrays of Pointers
- Specify the data type of data stored in the
location, which is to identified by the pointer.
The asterisk tells the compiler that you are
creating a pointer variable. Then specify the
name of variable. - we have created an array of pointers of maximum
size 3. Then we have assigned the objects of
array pointer. - The address of the variable. array0
xarray1 yarray2 z Here is the
code
15- Example
- void main()
- clrscr() int array3 int x 10, y
20, z 30 int i array0 x array1
y array2 z for (i0 ilt 3 i) p
rintf("The value of d d ,address is u\t \n", i
, (arrayi), arrayi) getch()
16- Pointers and Structure
- The concept of pointers can be used in two
ways - 1.Address of a structure variable can be
retrieved using operator. - 2.We use operator to retrieve the address of a
structure variable. - Example
- struct temp
-
- int i
- float f
- char c
- struct temp t,tp
- Where,
- t is declared to be variable of struct temp
type.tp is declared to be a pointer to struct
temp type. -
17- Example
- includeltstdio.hgt
- includeltconio.hgt
- struct temp
-
- int i
- float f
- char c
-
- void main()
-
- struct temp t123,34.56,p,tp
- clrscr()
- tpt
- printf(t.id \n,tp-gti)
- printf(t.ff \n,tp-gtf)
- printf(t.cc \n,tp-gtc)
- getch()
-
18- Structures containing Pointers
- struct temp
-
- int i
- int ip
-
- The structure definition includes ip,a pointer
to int type as one of its members. -
- Example
- includeltstdio.hgt
- includeltconio..hgt
- Struct temp
-
- int i
- int ip
-
- void main()
-
- struct temp t
- int a10
- clrscr()
- t.ia
- t.ipa
- printf(Value of ad,t.i)
- printf(Address of au \n,t.ip)
- getch()
-
19- Files
- Files can be classified into many types depending
upon the contents of the file. - Key terms used in file processing
- FieldA field is an elementary data item that is
used to store a single unit of data. - Examplename
- Record A group of related fields constitute a
record. - Examplerollnumber,name,mark1,etc.
- FileA group of related records form a
file.Generally,this type of file is called a data
file. - ExampleEmployee data file
- StreamInput and output operations are performed
through streams. In C files are streams of
characters.The stream of characters are decoded
by various Input and output functions like
scanf(),getc(),etc.
20- Types of streams
- There are two types of streamstext and
binary - text and binaryA text stream consists of ASCII
characters. A binary stream consists of any type
of data. The major difference between two stream
permits character translation while transporting
data. - Opening and/or Saving Files
- To create a new file, open an existing file, or
save a file, you use the fopen() function - Syntax
- FILE fopen(const char FileName, const char
Mode) - Where,
- The fopen() function requires two arguments.
The first argument filename refers to the name
of he file to be opened. The second argument
mode refers to the file mode, which specifies
the purpose for which the file is opened. -
21- Example
- fpopen(salary.txt,w)
- if(fpNULL)
-
- printf(\n Unable to open file.. Quitting
process..\n) - getch()
- exit(0)
-
22- The following table illustrates the different
modes of file operation
File Type Meaning
r Opens an existing file for reading.
w Opens a new file for writing.
a Opens an existing file for appending.
rb Opens a binary file for reading.
wb Creates and opens a new binary file for writing.
ab Opes a binary file for appending
r Opens fn existing file for reading and writing
w Creates and opens a new file for reading and writing.
a Open an existing file for reading and writing in the append mode.
rb or rb Opens a binary file for read and write operations
wb or wb Creates and opens a binary file for read and write operations
ab or ab Opens a binary for for read and write operations.
23- For example, consider the statements
- FILE fp1,fp2
- ..
- ..
- fp1fopen(emp.dat,r)
- fp2fopen(salary.txt,w)
- Closing a file
- A file is closed when all the input/output
operations are completed on it. The fclose is
used to close an opened file. - Syntax
- int fclose(FILE fp)
- Where,
- The file pointer fp is closed.
24- Operations on Files
- The following are various functions that are used
on files. - 1.putc() function This function is similar to
the putchar(). - Syntax
- int putc(int ch,FILE fp)
- 2.getc() functionThis function is similar to the
getchar() function. - Syntax
- int getc(int ch,FILE fp)
- 3.putw() functionThis function is used to write
an integer value onto the file pointed by the
pointer. - Syntax
- int putc(int w,FILE fp)
- 4.fprintf() functionThis function is similar to
the scanf() function. - Syntax
- int fprintf(FILE fp,format specifications,list
of variables) - 5.fscanf() functionThis function is similar to
the scanf() function. - Syntax
- int fscanf(FILE fp,format specifications,list
of variables) - 6.fread() functionThis function reads data from
stream file or file of any data type using binary
representation.. - Syntax