A pointer is a programming language data type, in computer science, a special type of variable in C and C++ whose value directly refers to (or "points to") another value stored elsewhere in the computer memory by using its address. The pointer is indicated by (*) asterisk symbol.

Features of a Pointer:

1. Execution time along with pointer is much faster since data is manipulated along the address i.e. use to direct access to memory location.

2. Pointers save memory space.

3. The memory is powerfully accessed with the pointers. The pointer assigns memory space and releases also. Memory is allocated dynamically.

4. Pointers are used along with data structures. They are useful for representing two-dimensional or multi-dimensional arrays.

Pointer Declaration and Initialization:

Pointers can be described or declared as follows.

Syntax:   data_type *pointer_name;

It shows the compiler three things regarding the pointer variable. The asterisk (*) indicates which the variable is a pointer variable. pointer_name needs a memory location. Pointer points to a variable of type data_type

Use in data structures:

While setting up data structures as queues, lists and trees, it is essential to have pointers to help manage how the structure is implemented and controlled. Typical instance of pointers are end pointers, start pointers, & stack pointers. These pointers can either be absolute (the real physical address or a virtual address in virtual memory) or relative (an offset from an absolute start address ("base") that typically utilizes fewer bits than a full address, but usually will require one additional arithmetic operation to resolve).

Use in control tables:

Control tables, that are utilized to control program flow, usually make costly use of pointers. The pointers, generally embedded in a table entry, may, for example, be utilized to hold the entry points to subroutines to be executed, depend on certain conditions described in the same table entry. However the pointers can be simply indexes to other separate, although associated, tables comprising an array of the actual addresses or the addresses themselves (based on the programming language constructs available). They may also be utilized to point (back) to earlier table entries (as in loop processing) or forward to skip some table entries (as in a switch or "early" exit from a loop).

C pointers:

The basic syntax to describe a pointer is:
int *ptr;
It declares ptr as the identifier of an object of the following type:
Pointer that points to an object of type int
It is usually stated more succinctly as 'ptr is a pointer to int.'

Null pointer:

It is a regular pointer of any pointer type which contains a special value that indicates that it is not pointing to any valid reference or memory address. This value is the result of type-casting the integer value zero to any pointer type.
int * p;
p = 0;     // p has a null pointer value

C arrays:

In C, array indexing is formally described in terms of pointer arithmetic; that is, the language specification needs that array[i] be equivalent to *(array + i). Therefore in C, arrays can be thought of as pointers to consecutive areas of memory (along with no gaps), and syntax for accessing arrays is identical for that which can be utilized to dereference pointers. For instance, an array can be defined and used in the following way:

int array[5];     
int *ptr = array; 
ptr[0] = 1;       
*(array + 1) = 2; 
*(1 + array) = 3; 
2[array] = 4;

Pointers to pointers:

C++ permits the use of pointers that point towards pointers, that these, in its turn, point to data (or even to other pointers). To do that, we only required to add an asterisk (*) for each of level of reference in their declarations:

char a;
char * b;
char ** c;
a = 'z';
b = &a;
c = &b;

This, assuming the randomly chosen memory locations for each of the variable of 7230, 8092 and 10502, could be represented as following:


The value of each of the variable is written inside each cell; under the cells are their respective addresses in memory.


In this, pointers are supported only under certain conditions: any block of code by including pointers ought to be marked with the unsafe keyword. Usually such blocks require higher security permissions than pointerless code to be permitted to run. The syntax is fundamentally the same as in C++, and the address pointed may be either managed or unmanaged memory. Though, pointers to managed memory (any pointer to a managed object) ought to be declared using the fixed keyword that prevents the garbage collector from moving the pointed object as part of memory management whereas the pointer is in scope, therefore keeping the pointer address valid.

Latest technology based Computer Science Online Tutoring Assistance

Tutors, at the www.tutorsglobe.com, take pledge to provide full satisfaction and assurance in Pointers homework help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Pointers, project ideas and tutorials. We provide email based Pointers homework help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Pointers. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Computer Programming homework help and assignment help services. They use their experience, as they have solved thousands of the Computer assignments, which may help you to solve your complex issues of Pointers. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.

©TutorsGlobe All rights reserved 2022-2023.