Difference between char* and char[]

char str[] = "Test";

Is an array of chars, initialized with the contents from “Test”, while

char *str = "Test";

is a pointer to the literal (const) string “Test”.

The main difference between them is that the first is an array and the other one is a pointer. The array owns its contents, which happen to be a copy of "Test", while the pointer simply refers to the contents of the string (which in this case is immutable).

Leave a Comment