В приведенном выше контексте (то есть в том же методе, в котором мы имеем объявление),
/*1*/ s1[0]='\0';
/*2*/ s2=s1;
/*3 Only This is valid*/ s1=s2;
/*4*/ s2[0]='\0';
Ваш компилятор не допустит прохождения шага 1,2,4, а шаг 3 будет успешным. Это ясно указывает на природу переменных. Теперь, что касается метода (вызова функции), чтобы определить это, вам все равно нужно будет иметь определение в сигнатуре метода, поэтому я не вижу никакой цели / полезности / возможности этого метода.
determiner (const char* s1,const char *const s2)
У вас уже есть определение в подписи. Вам нужно обойти компилятор, чтобы получить вариант использования для этого.
Прошу прощения, если я не правильно выполнил ваше требование.