KPK Grade 12 Computer Science Computer Science Notes Pointers
Table of Contents
Q.4) Define the term pointer. Describe the advantages of using pointer variables.
POINTERS DEFINITION:
“The variable that stores the address of another variable”
EXPLANATION:
Pointers are powerful features of C++ that differentiate it from other programming languages. With the help of pointers, C++ gives users the power to manipulate the data in the computer’s memory directly. Pointers are used in the C++ program to access the memory and manipulate the address.
Class 12th notes for computer sceince for kpk
he variable name refers to that memory space that is occupied by it. Pointers are used to store the address of a variable. The width of the memory address/location depends on computer architecture. If the computer architecture is 16-bit then it means that it can have 216 memory locations.
Therefore, for a pointer to be able to store any memory location in this computer it should be 16 bits or 2 bytes wide. Similarly, for 32-bit and 64-bit architecture, we need to have pointers with size 4 bytes (32-bit width) and 8 bytes (64-bit width) respectively.
ADVANTAGE OF POINTER VARIABLE
The main advantages of pointers are as follows:
- It can save memory (Pointers reduce the length and complexity of a program)
- It runs faster because it does not have to duplicate the data. They increase execution speed.
- A pointer enables us to access a variable that is defined outside the function.
- Pointers are more efficient in handling the data tables.
- The use of a pointer array of character strings results in saving of data storage space in memory.
Q.5) What is the difference between the deference operator* and reference operator &? Explain with the help of some lines of code.
DIFFERENCE BETWEEN DEREFERENCE AND REFERENCE OPERATOR DEREFERENCE OPERATOR (*)
PURPOSE:
If we want to store the value of the variable through the pointer, then we need a special type of operator called dereference operator denoted by an asterisk (*).
EXAMPLE:
Consider the following program to demonstrate the use of dereference operator (*).
#include <iostream.h>
#include<conio.h>
int main()
{
int n = 200;
int *Pn; //defines a pointer to n
Pn=&n; //Pn stores the address of ‘n’
int valueN;
valueN=*Pn;
cout << “The address of n= ”<<&n << endl;
cout<< “The value of n= ”<<n<<endl;
cout << “The value of Pn = ”<< Pn<<endl;
cout << “The value of (*Pn) = ”<< (*Pn)<<endl;
cout << “The value of valueN = ”<< valueN;
getch( );
return 0;
}
EXPLANATION OF EXAMPLE:
In this example, the instructions at lines 10 and 14 make use of the dereference operator (*) and thus access the actual values of the original variable ‘n’ which is pointed out by the pointer ‘Pn’. In pointers, the ampersand operator (&) is the reference operator and can be read as “address of” and (*) is the dereference operator that can be read as “value pointed by”. These operators are complementary of each other and have opposite meanings. A variable referenced with & can be dereferenced with (*).
REFERENCE OPERATOR (&) OR ADDRESS OPERATOR
As pointers are the variables which hold the addresses of other variables, therefore, while assigning addresses to them, a programmer needs a special type of operator called reference or address operator that is denoted by ampersand (&) symbol. This provides the address of a memory location.
EXAMPLE:
Consider the following program:
// use of pointer in a program
#include <iostream.h>
#include<conio.h>
int main()
{
float x = 6.5;
float ‘fPointer;
fPointer= &x;
cout << “The address of x= ”<<&x << endl;
cout<< “The value of x= ”<<x<<endl;
cout << “The value of fPointer = ”<< fPointer;
getch();
return 0;
}
Q.6) What is meant by the term pointer initialization? Write a simple program to illustrate this concept.
Answer:
POINTER INITIALIZATION
DEFINITION:
“Assigning values to pointers at declaration time is called pointer initialization.”
EXPLANATION:
As we know that the values of pointers are the addresses of other variables, therefore, sometimes when we declare pointers we may want to explicitly specify to which variables they will point.
Consider the following segment of code to understand the concept of pointer initialization: float Temperature;
float *PTemperature = &Temperature;
Here, PTemperature is a pointer variable to a floating point variable. As this pointer is created with the statement ‘float * PTemperature’, immediately the address of a float variable ‘Temperature’ is assigned to it. The behavior of the above code is being equivalent to the following code.
float Temperature; float ‘PTemperature;
PTemperature = &Temperature;
It should be considered that at the moment of declaring a pointer, the asterisk (*) indicates only that it is a pointer variable and not the dereference operator.
EXAMPLE:
Consider the following program to explain the concept of pointer initialization.
#include “stdafx.h”
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
int var = 20; // actual variable declaration.
int *ip; // pointer variable
ip = &var; // store address of var in pointer variable
cout << “Value of var variable: “;
cout << var << endl;
// print the address stored in ip pointer variable
cout << “Address stored in ip variable: “;
cout << ip << endl;
// access the value at the address available in pointer
cout << “Value of *ip variable: “;
cout << *ip << endl;
return 0;
}
Output:
The output of the program is as follows:

Q.7) How the declaration of a pointer variable is different from the declaration of a variable.
Answer:
The declaration of the pointer is simple and is similar to the declaration of a regular variable with a minor difference of the use of asterisk * symbol between the data type and the variable name.
Reated Post: