seahmetburak Merhaba,
Adres belirtme sebebi pointer. Pointer olarak tanımlama yaptığınızda bir uzunluk belirtilmediği için sizin el ile adresleme yapmanız gerekecektir. char isim[20] gibi bir tanımlamada zaten 20 karakter uzunluğunda bellekte bir yer otomatik tutuluyor. Bunun için ek bir adres tanımına gerek yok. Pointer ile yaptığımızda başlangıçta 1 bytelık yer tutar. Yazdığınız veri tek bytelık veri olmadığı içinde *(isim + 1); diyerek otomatik atanır.
Örneğin:
"Halil" adında bir verimiz var.
char *isim
isim = "halil"
bu şekilde bir atama yapıldığında ve *isim olarak çağırıldığın 1 bytelık veri yani "h" harfi gelir. Diğerleri için *(isim + 1), *(isim + 2)... şeklinde çağırım gerektirir. Diğer türlü char isim[20] derseniz ve çağırım yaptığınızda "halil" 20 uzunluğundan küçük olduğu için ve bellekte bulunan tek bir adreste bulunduğundan dolayı direkt "halil" olarak çıktı verir.