Understanding Pointers in C: Definitions, Advantages, Syntax, and Examples
Pointer: A pointer is a variable that stores the memory address of another variable. It "points" to the location in memory where the data is stored rather than containing the data itself.
Pointers are a fundamental concept in the C programming language that can be both powerful and perplexing for beginners. They allow you to work with memory addresses directly, enabling you to create more efficient and flexible code
Dereferencing: The process of accessing the value stored at the memory address pointed to by a pointer is called dereferencing. It is done using the * (asterisk) operator.
Syntax: Declaring and using pointers in C follows a straightforward syntax. Here are some common operations:
Declaration: To declare a pointer, use the * symbol before the variable name. For example:
int *ptr; // Declares a pointer to an integer
Initialization: Initialize a pointer with the address of a variable or memory allocated by functions like malloc:
int num = 42; int *ptr = # // Initializes ptr with the address of num
Dereferencing: To access the value pointed to by a pointer, use the * operator:
int value = *ptr; // Dereferences ptr to get the value (42)
Example Program 1: Let's create a simple C program that demonstrates the use of pointers to swap two integers.
#include <stdio.h>
#include <conio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void main() {
int num1 = 10, num2 = 20;
clrscr( );
printf("Before swap: num1 = %d, num2 = %d\n", num1, num2);
swap(&num1, &num2);
printf("After swap: num1 = %d, num2 = %d\n", num1, num2);
getch( );
}
In this program, we declare a function swap that takes two pointers as arguments and swaps the values they point to. The main function demonstrates how to use pointers to achieve the swap operation.
Example Program 2: Let's create a simple C program that demonstrates the use of pointers to calculate simple interest.
#include <stdio.h>
#include <conio.h>
// Function prototype that calculates simple interest using pointers
void calculateSimpleInterest(float *principal, float *rate, float *time);
void main() {
float principal, rate, time, interest;
clrscr( );
// Input principal amount, rate of interest, and time
printf("Enter principal amount: ");
scanf("%f", &principal);
printf("Enter rate of interest (in percentage): ");
scanf("%f", &rate);
printf("Enter time (in years): ");
scanf("%f", &time);
// Calculate simple interest using the function
calculateSimpleInterest(&principal, &rate, &time);
// Display the calculated simple interest
printf("Simple Interest: %.2f\n", interest);
getch( );
}
// Function definition to calculate simple interest using pointers
void calculateSimpleInterest(float *principal, float *rate, float *time) {
// Calculate simple interest formula: P * R * T / 100
float *interest = (*principal) * (*rate) * (*time) / 100;
}
Netra Koirala
Computer Science Educator
Passionate computer science educator and author. Provides free study notes, practical guides, and tutorials for Class 9, 10, 11, 12, and B.Sc CSIT students in Nepal. Years of teaching experience in computer science fundamentals.
LinkedIn ProfileRelated Posts
Loading related posts…
Computer Science notes, tutorials, MCQs, and educational resources for Nepal students. Covering Class 9, SEE preparation, Class 11, Class 12, SLC, programming, DBMS, networking, HTML, JavaScript, PHP, OOP and more.
Featured Post
Grade 10 Computer Science: Specification Grid & Model Questions
Specification Grid & Model Questions of Computer Science | Grade 10 📚 Examination Resource Specification Grid & M...