Article View: pl.comp.lang.c
Article #308778Re: Pytanko dotyczące C/C++
From: Piotr Gałka
Date: Thu, 04 Aug 2016 11:33
Date: Thu, 04 Aug 2016 11:33
51 lines
2655 bytes
2655 bytes
Użytkownik <stchebel@gmail.com> napisał w wiadomości news:4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com... >1) void Jakaś_Tam_Funkcja(int* Jakaś_Tam_Zmienna); > I jak następnie prawidłowo wywoływać tą funkcję z pewną zmienną o zadanej > wartości. Moje podejście do wskaźników w C. Najprostsze tłumaczenie że int *p; oznacza, że p jest wskaźnikiem na int nie do końca tłumaczy spotykane potem operacje typu: int a; a=*p; Dlatego ja sobie * i & tłumaczę tak: ------------------- do zapamiętania ----------------------- *p - przerabia p na coś wskazywanego przez p czyli na wskazywaną wartość. &a - przerabia zmienną a na jej adres czyli na wskaźnik na tę zmienną. ------------------------------------------------------------ Wynika z tego: p jest wskaźnikiem, *p jest wskazywaną przez p wartością (*p nie jest wskaźnikiem!) a jest jakąś wartością, &a jest wskaźnikiem na a, Pozwala to zrozumieć następujące zapisy: *p=a; // kopiujemy zawartość zmiennej a do zmiennej wskazywanej przez p a=*p; // odwrotnie p=&a; // adres zmiennej a wpisujemy do p (od teraz p wskazuje na a) Zapis: &a=p; nie ma sensu, bo nie można modyfikować adresu zmiennej. Deklaracja: int *p; oznacza, że p po przerobieniu na coś na co ono wskazuje stanie się int więc p musi wskazywać na int czyli p jest wskaźnikiem na int. a deklaracja: int **p; oznacza, że p po przerobieniu na to na co wskazuje i po ponownym przerobieniu na to na co wskazuje stanie się int zatem p jest wskaźnikiem na wskaźnik, który (ten drugi) wskazuje na int. Wywołanie funkcji void f(int *p): int a; f(&a); int *b; b=&a; f(b); P.G.
Technical Details
Message-ID:
<nnv968$j5n$1@news.chmurka.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.238!not-for-mailReferences:
<4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.238!not-for-mail From: Piotr Gałka <piotr.galka@cutthismicromade.pl> Newsgroups: pl.comp.lang.c Subject: Re: Pytanko dotyczące C/C++ Date: Thu, 4 Aug 2016 13:33:31 +0200 Organization: news.chmurka.net Lines: 52 Message-ID: <nnv968$j5n$1@news.chmurka.net> References: <4069150b-d97c-4c69-ac7e-b46f61454c32@googlegroups.com> Mime-Version: 1.0 Injection-Date: Thu, 4 Aug 2016 11:33:28 +0000 (UTC) Injection-Info: news.chmurka.net; posting-account="PiotrGalka"; posting-host="213.192.88.238"; logging-data="19639"; mail-complaints-to="abuse-news.(at).chmurka.net" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit