void fct1(int *p)
ve
void fct1(int p[])
arasındaki fark nedir biliyor musunuz
void fct1(int *p)
ve
void fct1(int p[])
arasındaki fark nedir biliyor musunuz
bir fonksiyonu olarak kullanıldığında kesinlikle hiçbir fark yoktur Böyle bir parametre. Derleyici, her iki formu da aynı şekilde ele alır.
Fark yoktur. Bütünlüğü sağlamak için, burada standart söylüyor:
C99 standart 6.7.5.3 bölümü 7
'tip dizisi 'gibi bir parametrenin bir beyan' ' kalifiye işaretçi ayarlanmalıdır tipine '' ...
@ Mark Ransom hızlı cevap için u teşekkür ederim. ama int p [] 'in sabit bir işaretçi olduğunu duydum, bu yüzden işaret ettiği adres değiştirilemez değil mi? – user2142328
("işlev işaretçileri" işlevler için işaretçilerdir, işaretçileri alan işlevler değildir. Söylenenleri söylerim, eminim * bu * yinelenen olabilir.) –
@ user2142328 'p []' bir boyut dizisini bildirir daha sonra belirlenecek. Boyutu hemen bilinmesi gereken bir işlev parametresinde bu geçersiz olurdu. Bu bağlamda, özel olarak ele alındığında, '* p''ye anlık dönüşüme geçilir. – Potatoswatter