Ukazatel rozdil – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukazatel rozdil – C / C++ – Fórum – Programujte.comUkazatel rozdil – C / C++ – Fórum – Programujte.com

 

petr
~ Anonymní uživatel
746 příspěvků
8. 10. 2017   #1
-
0
-

dobry den,

muzuz se zeptat jaky je rozdil mezi timto nadeklarovanim:

Type *variable

Type* varialbe

Dekuji za odpoved

Nahlásit jako SPAM
IP: 80.251.241.–
Radek Chalupa
~ Redaktor
+1
Super člen
9. 10. 2017   #2
-
0
-

Žádný, a můžeš napsat i "typ * promenna". Je to věc pohledu a vkusu.

Nahlásit jako SPAM
IP: 89.177.51.–
KIIV
~ Moderátor
+43
God of flame
9. 10. 2017   #3
-
0
-

Z hlediska semantiky to patri vice k typu nez k nazvu promenne. Jenze jak zacatecnici maji tendence psat vsechno na jeden radek a spousta tutorialu jim to taky predvadi (a v knihach to asi i setri misto?), tak je u tohodle pristupu vetsi riziko napsat neco takoveho:

Type* pointer1, pointer2;

Coz je chyba, jelikoz pointer2 uz neni vubec pointer, ale konkretni instance typu Type.

Kazdopadne je mnohem prehlednejsi psat kazdou deklaraci promenne na samostatny radek:

Type* pointer1;
Type* pointer2;
Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
petr
~ Anonymní uživatel
746 příspěvků
10. 10. 2017   #4
-
0
-

#3 KIIV
dekuji za odpoved a i přiklad chyby, takže psát za typ, ale jaktože to patří více k typu, me jako začátečníkovi přijde, že to patři více k tomu pointru a typ zustava typem.

Nahlásit jako SPAM
IP: 80.251.241.–
petr
~ Anonymní uživatel
746 příspěvků
10. 10. 2017   #5
-
0
-

#4 petr
uplne zmatečné mi take přijde když do deklarace funce dávám const string& nm, nebo const string &nm , s tim to tusim bude obdobne

Nahlásit jako SPAM
IP: 80.251.241.–
KIIV
~ Moderátor
+43
God of flame
10. 10. 2017   #6
-
0
-

Tak pis  Type * ptr;

Kazdopadne se to cte jako ptr je typu pointer na Type, proto to patri vice k typu nez k nazvu promenne.

Sranda, ze jsi zrovna zminil const, ale trapi te symbol reference :) Const je jeste zajimavejsi:

const Type* ptr;  nebo  Type const* ptr; znamenaji to same. ptr je typu pointer na const type. Pointer menit muzes, data, na ktere ukazuje, ne.

Pak jde vytvorit i const pointer:

const Type* const ptr; coz znamena, ze nemuzes menit ani data ani samotny pointer.

Muzu doporucit https://cdecl.org/, ktery ti dokaze prelozit deklaraci do lidske reci (akorat je to anglicky)   

Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 132 hostů

Podobná vlákna

Ze by ukazatel ... — založil Marecek

Ukazatel this — založil LPG1995

Ukazatel — založil porod

Ukazatel na funkci — založil Jirka

Ukazatel na funkci — založil Kenvelo

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý