```
#include <stdio.h>

main()
{
  char * ptr;

  ptr = "hello";

  printf("%p %s" ,"hello",ptr );

  getchar();

}

```

Hi, I am trying to understand clearly how can arrays get assign in to pointers. I notice when you assign an array of chars to a pointer of chars `ptr="hello";` the array decays to the pointer, but in this case I am assigning a char of arrays that are not inside a variable and not a variable containing them ", does this way of assignment take a memory address specially for `"Hello"` (what obviously is happening) , and is it possible to modify the value of each element in "Hello" wich are contained in the memory address where this array is stored. As a comparison, is it fine for me to assign a pointer with an array for example of **ints** something as vague as this`int_ptr = 5,3,4,3;` and the values 5,3,4,3 get located in a memory address as "Hello" did. And if not why is it possible only with strings? Thanks in advanced.