🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #714

Re: fscanff i sekwencja formatujaca

#714
From: Mechanik
Date: Thu, 22 Jan 1998 20:50
55 lines
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-mail
References: <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