Article View: pl.comp.lang.c
Article #714Re: fscanff i sekwencja formatujaca
From: Mechanik
Date: Thu, 22 Jan 1998 20:50
Date: Thu, 22 Jan 1998 20:50
55 lines
2476 bytes
2476 bytes
Dnia Thu, 22 Jan 1998 10:43:08 +0100 Marek Kotowski <mkot@imm.org.pl> napisal tak: >Mechanik wrote: >> >> Chce tylko zauwazyc ze jesli mamy: >> >> char nazwisko[WIELKOSC]; >> >> to wyrazenie &nazwisko nie ma sensu, tak jak nie ma sensu wyrazenie &3.1415, bo nie >> mozna brac adresu stalej. I wtedy kompilator daje ostrzezenie. > To nie jest dobre porownanie. nazwisko jest adresem w pamieci, >niekoniecznie stalym, np. jesli tablica jest zmienna lokalna. >3.14 jest stala, a nie zmienna i sama w sobie nie zajmuje miejsca >w pamieci. To nie tak! Jesli mamy tablice char nazwisko[WIELKOSC] to sam identyfikator tablicy czyli nazwisko jest adresem pierwszego elementu tablicy: nazwisko == &nazwisko[0] Dla przykladu jesli tablica nazwisko[WIELKOSC] znajduje sie pod adresem 12345 to wartoscia wyrazenia nazwisko jest adres 12345. Nie jest to zmienna i sam w sobie nie zajmuje miejsca w pamieci. Jesli proponujesz brac adres &nazwisko, to proponujesz brac adres &&nazwisko[0], co jest bez sensu. Moj kompilator daje w takim wypadku stosowne ostrzezenie: '&' on function/array, ignored czyli po prostu ignoruje takie cudo. > Wyrazenie &nazwisko ma sens adresu tablicy (pisano o tym juz >w tym watku). Mozna dyskutowac, na ile bywa przydatne praktycznie. >Autorzy standardu uznali, ze jest sensowne go dopuscic. Wyrazenie &nazwisko ma sens rowny wyrazeniu nazwisko, bo po prostu & jest tu ignorowane, i nie jest adresem tablicy tylko adresem pierwszego alementu tablicy. Tak samo jak masz int fun(void); to fun jest adresem funkcji oraz &fun jest adresem funkcji i jest to to samo. nazwisko == &nazwisko == &nazwisko[0] fun = &fun Jest to nielogiczne i wola o pomste do nieba, ale tak wlasnie jest. VANITAS VANITATUM ET OMNIA VANITAS Mechanik
Technical Details
Message-ID:
<6a87is$r34$1@sunsite.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mailReferences:
<Pine.LNX.3.96.980120181552.552J-100000@qrnik.knm.org.pl> <6a5fji$rc9$1@sunsite.icm.edu.pl> <34C714AC.3E9F@imm.org.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mail From: ireks@bigfoot.com (Mechanik) Newsgroups: pl.comp.lang.c Subject: Re: fscanff i sekwencja formatujaca Date: Thu, 22 Jan 1998 20:50:38 GMT Organization: ICM's news server Lines: 56 Message-ID: <6a87is$r34$1@sunsite.icm.edu.pl> References: <Pine.LNX.3.96.980120181552.552J-100000@qrnik.knm.org.pl> <6a5fji$rc9$1@sunsite.icm.edu.pl> <34C714AC.3E9F@imm.org.pl> Reply-To: ireks@bigfoot.com NNTP-Posting-Host: rap-cen185.opole.tpnet.pl X-Newsreader: Forte Free Agent 1.0.82 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit