( vl | 2011. 11. 26., szo – 17:44 )

Mi a kulonbseg? Mind a ket esetben egy pointert kapsz egy char tipusra.

Az a különbség, hogy az

extern char *a;
extern char a[];

közül az első egy olyan globális objektumra mutat, amihez egy pointer méretű memóriaterület tartozik, és az "a" értéke az adott objektumhoz tartozó memóriaterületen eltárolt pointer, az &a kifejezés értéke pedig a globális objektum címe.
A második egy olyan globális objektumra mutat, aminek a mérete ismeretlen, és "a" értéke a globális objektumhoz tartozó memóraterület címe. A második objektumnál nem definiált fogalom az &a.

Az első "a"-nak lehet értéket adni, az értékadás alkalmából a pointert beírjuk a memóriaterületre. A második "a"-nek nem lehet értéket adni, az mindig ugyanarra a memóriaterületre fog mutatni.