Full Stack Web Development Internship Program
- 5k Enrolled Learners
- Weekend/Weekday
- Live Class
While learning C, you might have come across the term ‘Pointers’, and often heard that it is a concept hard to understand. Pointers are helpful in various programming tasks and, it is not that difficult to understand. This article will introduce you to pointers in C and tell you why are they not so difficult to learn as they seem.
Following are the pointers covered in this article,
Let us start with first bit of this pointer in C article,
A pointer is a variable which is capable of storing the address of a variable. Now, you might ask what’s the use of that? Basically, the pointer points to the memory location of the variable whose address is provided. This property helps in Dynamic memory allocation, which is an important aspect of programming.
Let’s understand it’s syntax and have a look at an example
Data_Type *pointer_name;
Example: int *ptr;
Following is the next bit in this Pointers in C article
Before diving deeper into the concept of pointer let’s understand some basics that will help us later on. While using pointers you will definitely use ‘&’ and ‘*’ operators. Now is the time to understand their meaning and use.
First, let’s understand Reference operator often called as ‘Address of’ operator. Using (ampersand) operator with a variable returns us a memory location also known as the address of the given variable.
Example
int *ptr; int a; ptr = &a;
The address of variable ‘a’ is stored in variable ptr.
Now, let’s understand the De-Referencing or ‘Value at’ operator which is denoted by an asterisk (*). It helps in retrieving the value from the memory location which is stored in the pointer variable
Example
int *ptr; int a; *ptr = &a; printf("Value of a = %dn", *ptr);
Types Of PointerThe * used while declaring a pointer is not for the purpose of De-Referencing but, tells the compiler that the given variable is a pointer. The above print statement prints the value present in the memory location and this memory location is pointed by the pointer. i.e value of the variable ‘a’.
There are several types of pointers which differ based on the way they are used in a program. We will look at some of the most commonly used types.
A null value is assigned to a pointer when you are not sure what address is to be assigned. It can be done by assigning ‘NULL’ value to a pointer at the time of declaration. The value of this pointer is 0.
int *ptr = NULL;
Wild Pointer
A a wild pointer is created by not assigning any value to a pointer variable. It should be used carefully as it may result in unexpected results.
Dangling Pointer
When a pointer points to a deleted variable or de-allocated memory the pointer is known as a dangling pointer. This pointer points at a non-existing memory location. Let us take a look at the next bit of this Pointers in C article
Now we have a brief understanding of Reference and dereference operators. In this section, we will understand how to use pointers. Till now we have learned how to declare a pointer and use it for some basic operations. At this point, we have enough knowledge to use pointers for really amazing programming tasks by doing arithmetic operations on them.
Normally, these operations are performed on arrays. Subtracting to 2 addresses can give us the distance between 2 memory locations.
int main() { int First_array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; /*Our array on which we will perform operations*/ int *ptr; /*Pointer*/ ptr = First_array; /*Assign the address of array to the pointer variable*/ for (int i = 0; i < 10; i++) /*Performing operations*/ { printf("Value of *ptr variable = %dn", *ptr); printf("Value of ptr variable = %pnn", ptr); ptr++; } }
Output
Try implementing the code by yourself and perform different arithmetic operations. Let’s use pointers with strings.
#include <stdio.h> #include <string.h> int main() { char str[]="Hello World"; /*Creating an array*/ char *p; /*Pointer*/ p=str; printf("Printing all the characters in our stringn"); p=str; for(int i=0;i<strlen(str);i++) { printf("%cn",*p); p++;} return 0; }
With this we come to the end of this blog on ‘Pointers In C’. I hope you found this informative and helpful, stay tuned for more tutorials on similar topics.You may also checkout our training program to get in-depth knowledge on jQuery along with its various applications, you can enroll here for live online training with 24/7 support and lifetime access.Implement the above code with different strings and modifications. Now, we have a good understanding of all key concepts related to the pointer.
Got a question for us? Mention them in the comments section of this blog and we will get back to you.