What is a pointer in C language?
In C language, a pointer is a variable that stores the memory address of another variable. Each variable has a unique address in memory, and a pointer is used to store this address. Through pointers, we can directly access and manipulate data in memory.

How to use pointers
-
Defining a pointer: Use the * symbol to define a pointer variable. For example, int *p; indicates a pointer to an integer.
-
Getting an address: Use the & symbol to get the address of a variable. For example, p = &a assigns the address of variable a to pointer p.
-
Accessing data: Use the * symbol to access the data at the memory address pointed to by the pointer. For example, *p = 10; assigns the value 10 to the memory address pointed to by pointer p.
Use cases
Pointers have a wide range of applications in C language, including but not limited to:
-
Dynamic memory allocation: Using malloc and free functions to dynamically allocate and free memory.
-
Array and string manipulation: Traversing and manipulating arrays and strings through pointers.
-
Passing function parameters: Passing large data structures (such as arrays and structs) via pointers to improve efficiency.
Example
Here is a simple example demonstrating how to use pointers to access and modify the value of a variable:
#include <stdio.h>int main() { int a = 100; int* p; // Define a pointer to an integer p = &a; // Get the address of variable a and assign it to pointer p printf("Value of a: %d\n", a); // Output the value of a printf("Address of a: %p\n", (void*)&a); // Output the address of a printf("Value of pointer p: %p\n", (void*)p); // Output the value of pointer p (i.e., address of a) printf("Value accessed through pointer p: %d\n", *p); // Access the value of a through pointer p *p = 200; // Modify the value of a through pointer p printf("Value of a after modification: %d\n", a); // Output the modified value of a return 0;}

In this example, we defined a pointer p and accessed and modified the value of variable a through it. Using pointers allows us to directly manipulate data in memory, making C language very powerful in handling low-level hardware and efficient memory management.