Pointer Doubt in stroke

I am not able to understand when we use pointer with string *ptr gives the value and ptr gives the address while here using strtok when we use ptr it gives value

string a = "Tarun Lunia";
string *ptr1 = &a;

cout<<ptr1<<endl;
cout<<*ptr1<<endl;

char ch[100] = "my name is tarun lunia";
char *ptr = strtok(ch," ");

cout<<ptr<<endl;
cout<<*ptr<<endl;

hi @luniatarun22 pointers behave differently with character arrays, If you want the address through a character pointer, you will have to explicitly typecast it to type void* first