Помощ - Търси - Регистрирани - Календар
Пълна версия: Термин
UniBG Forums > Дискусии > Dexter's Lab > Програмиране
abc
Какво значи рефериране и дерефериране?
magdanoz
referirani idwa ot referatiwen
koeto oznachawa neshto ili nqkoj koito se otnasq do referat, oswedomitelen informatiwen
primer referatiwen jurnal/material

de- e predstawka za obratnoto protowopolojnoto znachenie predpolagam
offgeboren
QUOTE(abc @ May 10 2007, 08:22 PM) *
Какво значи рефериране и дерефериране?

V c++:
int i(5); // suzdavash promenliva s type int, koiato ima stojnost 5
int* p(i); // suzdavash pointer s type int, kojto sochi kum i. tozi pointer shte bude na otdelno myasto v pametta i shte sudurja v sebe si adresa, kudeto se namira promenlivata i.

* e dereference operator, suotvetno:
cout << *p; // po tozi nachin shte napravish dereference kum obekta, kum kojto sochi pointera p i shte izpechatash chisloto 5.
cout << p; // taka puk e redno da izpechatash samo adresa na pointera p.

int& r(i); // po tozi nachin suzdavash reference kum i.

cout << r; // po tozi nachin izpechatvash stojnostta na i : 5.

Osnovnata razlika m/u pointeri i references e pri povikvaneto na funkcii i podavaneto na parametri kato pointeri ili kato references. PRedpolagam, che v uchebnika ti pishe poveche po tozi vapros. Ako puk oshte ne ti e iasen uchebnika, tuk imam links za teb, koito namerih v google:
references: http://www.embedded.com/story/OEG20010221S0094
dereference: http://en.wikipedia.org/wiki/Dereference
references vs pointers: http://www.embedded.com/story/OEG20010311S0024

p.s. nadyavam se da ne sum te oburkal..

QUOTE(magdanoz @ May 10 2007, 10:55 PM) *
referirani idwa ot referatiwen
koeto oznachawa neshto ili nqkoj koito se otnasq do referat, oswedomitelen informatiwen
primer referatiwen jurnal/material

de- e predstawka za obratnoto protowopolojnoto znachenie predpolagam


blink.gif tuk e forum po programirane vse pak.. ako ne znaesh, po-dobre si zatrai.
demоnd
malka popravka i utochnenia:
  • int* p(i) triabva da e int* p(&i)
  • pointera mozhe i da ne e v kletka na pametta, a v register na procesora
  • int i(5) e korektno (v C++, ne v C), syshto kakto i int i = int(5); no za POD (Plain Old Data) types se predpochita prosto int i = 5, za syvmestimost s C i za consistency s aggregator initialization (int a[5] = {1, 2, 3})
magdanoz
QUOTE(offgeboren @ May 11 2007, 01:49 AM) *
blink.gif tuk e forum po programirane vse pak.. ako ne znaesh, po-dobre si zatrai.


my bad
offgeboren
QUOTE(demоnd @ May 11 2007, 10:30 AM) *
malka popravka i utochnenia:
  • int* p(i) triabva da e int* p(&i)

oops smile.gif
Inache za C vs C++, moeto predpolojenie beshe, che choveka go uchat osnovite na OOP, izpolzvajki slojen ezik kato C++, dokato na nego mu e slojno da smeli osnovnite ponyatia. Pone pochti navsyakude v BG se zapochva s C++, koeto (imho) ne e naj-pravilniat variant za nauchavane na OOP, tuj kato e neobhodim edin semestur za nauchavaneto na C++, predi da se pristupi kum OOP, dokatgo e mnogo po-dobre chovek veche da znae kak se programira OO i samo da nauchi sintaxisa na C++ smile.gif
/* lichno mnenie */
demоnd
C++ mozhe da se prepodava kato pyrvi ezik, ako se izdiga nivoto na abstrakcia i se nabliaga na generic programming i standard library, po-specialno STL - koeto edva li e po silite na bg prepodavatelite, no vse pak e vyzmozhno i se praktikuva - vkluchitelno ot Bjarne v TAMU

osven tova se polagat usilia za oprostiavane na C++ s cel privlichane na poveche nachinaeshti; primerno v C++0x (novia standart kojto predstoi) shte e vyzmozhno vmesto:
CODE
vector<int>::iterator p = find(tbl.begin(), tbl.end(), x);

izpolzvajki concept-based overloading, da se pishe prosto:
CODE
auto p = find(tbl, x);

koeto izglezhda ne po-zle ot kojto i da e skriptov ezik i bi triabvalo da e razbiraemo dazhe za instalatori na forumi wink.gif
Това е семпла версия на форума. За да видиш пълната версия, която има повече информация, по-добра подредба и снимки, натисни тук.
Invision Power Board © 2001-2008 Invision Power Services, Inc.