3 ms·
The type of a string literal is array of char, and like other arrays, they decay to pointers to the first element when used in expression context, with three ex
by copascetic 10y ago
The type of a string literal is array of char, and like other arrays, they decay to pointers to the first element when used in expression context, with three exceptions: sizeof, taking the address with &, and when used as a string initializer. "test2" in your example is not a const char *, it's an initializer, since this is one of the exceptions to array-to-pointer decay.
http://c-faq.com/aryptr/aryptrequiv.html http://c-faq.com/aryptr/aryptrequiv.html
http://c-faq.com/decl/strlitinit.html http://c-faq.com/decl/strlitinit.html