🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Pytanko dotyczące C/C++

#308778
From: Piotr Gałka
Date: Thu, 04 Aug 2016 11:33
51 lines
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-mail
References: <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