& * сам не понимаю, ссылки / указатели,
попытался посмотреть уроки на ютубе, ни один гад не говорит нах они нужны
В первом примере мы в функцию передаем не саму переменную (строку текста), а лишь её адрес в памяти. Адрес начала массива. Для этого при передаче адреса и используеться знак &.
Но нам нужно как-то работать с этим адресом, потому что если просто вывести значение переменной, то мы по сути выведем её адрес в памяти, и увидим что-то типа "0x7ffd8d5fe92c".
Для того, чтобы прочитать значение этого адреса как раз и используеться указатель (символ *). Это позволяет хранить 1 ячейку памяти массива и работать с ним