Это связано с тем фактом, что «<<» будет автоматически следовать за указателем и распечатывать строку, а не просто распечатывать адрес памяти.Это легче увидеть в printf, так как вы можете указать распечатку указателя ИЛИ то, на что ссылается указатель. </p>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char** argv)
{
char string1[] = "lololololol";
char* string2;
string2 = string1;
printf("%s",string2);
printf("%p",string2);
return EXIT_SUCCESS;
}
Здесь вы можете увидеть, что% s выводит строку, а% p выводит памятьадрес.