Why Asterick Before Strings In C

C++ Programming

In C programming, you may have come across the use of an asterisk (*) before strings. This seemingly simple symbol holds significant meaning and functionality in the C language. In this article, I will delve into the reasons behind using an asterisk before strings in C, providing detailed explanations and personal commentary along the way.

Understanding Pointers

Before diving into the specifics of asterisks before strings, it’s important to grasp the concept of pointers in C. Pointers are variables that store memory addresses. In other words, they point to the location where data is stored in memory. By using pointers, we can efficiently manipulate and access data in our programs.

When it comes to strings in C, they are represented as arrays of characters. To access and manipulate strings, we need to use pointers. By declaring a pointer variable, we can point it to the memory address where the string is stored, allowing us to work with it effectively.

The Asterisk Before Strings

Now that we understand pointers, let’s talk about the asterisk before strings in C. When an asterisk (*) is placed before a variable declaration, it indicates that the variable is a pointer.

For example, consider the following code snippet:

char* myString;

In this case, myString is declared as a pointer to a char. This means that it will hold the memory address of a character or a sequence of characters, which constitutes a string.

By using the asterisk, we are telling the compiler that myString is a pointer and will store the memory address of the string, rather than the string itself.

Working with Pointers

Now that we know how to declare a pointer to a string, let’s explore some common operations we can perform with pointers to strings.

1. Accessing Characters

By dereferencing a pointer to a string, we can access individual characters within the string. The dereference operator is denoted by an asterisk (*) followed by the pointer variable’s name.

Consider the following code snippet:

char* myString = "Hello, World!";
printf("%c", *myString);

In this example, myString points to the first character of the string “Hello, World!”. By dereferencing myString and using the %c format specifier in printf, we can print the first character of the string, which is ‘H’.

2. Modifying Strings

Using pointers to strings allows us to modify the contents of the string. Since a string in C is essentially an array of characters, we can manipulate the individual characters through the pointer.

Consider the following code snippet:

char myString[] = "Hello, World!";
char* stringPointer = myString;
*stringPointer = 'J';
printf("%s", myString);

In this example, we declare an array myString that holds the string “Hello, World!”. We then assign the memory address of myString to the pointer variable stringPointer. By dereferencing stringPointer and assigning the value ‘J’, we modify the first character of myString to ‘J’. Finally, we print myString using the %s format specifier, resulting in “Jello, World!” being printed.


The asterisk before strings in C signifies the use of pointers to manipulate and access strings efficiently. By declaring a variable with an asterisk, we indicate that it is a pointer variable, capable of storing memory addresses instead of the data itself.

Understanding how to work with pointers to strings is crucial in C programming, as it allows for dynamic memory allocation, efficient string manipulation, and more advanced data structures. Embracing the power of pointers will undoubtedly elevate your C programming skills.