@Brainspell. It depends upon what you want. I thought you wanted to initialise an array of char pointers. However if you just want to initialise one c-style null-terminated string then:
name is a char array of 20 chars initialised from the given string with unused chars set to null
name1 is a char array of 5 chars (4 for else and 1 for null char) initialised from the given string
For both of these the contents can be changed, although if the contents aren't supposed to be changed then they can set be to const.
name2 is a pointer to a c-style null terminated string stored somewhere determined by the compiler. It's contents can't be changed and hence must be defined as const.