Understanding Pointers and Null-Terminated Strings in C
When working with null-terminated strings in C , a common question arises: what's the correct way to declare pointers to characters? Should it be char* string or char *string?
The Distinction between Type Qualifiers and Pointers
In char* string, the asterisk (*) is a type qualifier that modifies the data type char. This indicates that string is a pointer to a character.
In contrast, char *string uses the asterisk as a pointer operator, separating it from the variable name with a space. This explicitly designates string as a pointer to a character, rather than being a character itself.
Why the Latter Format is More Common
In the declaration char* string1, string2;, string1 is a character pointer while string2 is simply a character. To avoid confusion, the declaration is typically written as char *string1, string2;. This separates the pointer operator (*) from the variable name string2, making it clear that the pointer applies to string1 but not string2.
Good Practice: Avoid Multiple Declarations
For clarity, it's recommended to avoid declaring multiple variables in a single statement, especially when dealing with pointers. This helps prevent ambiguity and potential errors.
The above is the detailed content of What's the Difference between `char* string` and `char *string` in C ?. For more information, please follow other related articles on the PHP Chinese website!