Názory ke článku C++ - 9. lekce – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku C++ - 9. lekce – Programujte.comNázory ke článku C++ - 9. lekce – Programujte.com

 

Názory ke článku C++ - 9. lekce

Cubche   NOVÝ
30. 4. 2006

Tak tohle už asi nikdy nepochopim... Divim se , že sem se dostal tak daleko, ale tohle je na mě moc...

NAItReIN   NOVÝ
10. 8. 2006

A prečo by si to nemal pochopiť? Čo je na tom také, aby si to naozaj nedokázal pochopiť? Aj keď uznávam, može to byť trocha náročné, pokiaľ nevieš, ako je rozdelena pamať RAM. Je to takto:
* Globálny obor platnosti
* Hromada
* Registre
* Priestor pre kod
* Voľné úložisko

Keď vytvoríš ukazatel, ukaze práve niekam do Voľného úložiska. O ostatných častiach pamate by sa dalo písať ešte veľa, preto si to skús nájsť na nete, napr. na google.com

vird   NOVÝ
20. 8. 2006

teme ukazatelov ktora bola rozobrata v tejto lekcii chapem a nemam s tym problem dokonca by som chcel podakovat lebo v skole v pascali nam povedali preberte si to samy a ked som videl tri strany latky tak som sa na to vykaslal. ale nie o tom som chcel.
mam 2 otazky
1/ co je to <u>alokacia</u> pamate?
2/ ake je prakticke vyuzitie ukazateloch?
za odpoved vopred dik

Curo, autor článku   NOVÝ
20. 8. 2006

1/ alokace pameti je vytvoreni urciteho useku (zamluveni) a pripravenost k pouziti.. velmi laicky.. Proste zamluveni urcite velikosti pameti..
2/ dynamicke pridelovani pameti = setri pamet, pouziva se, protoze jinak bys na zacatku programu zamluvil hodne pameti, coz samozrejme neni dobre.. tak se pouziva pamet efektivne(jen kdyz je treba).

midin   NOVÝ
9. 11. 2006

Naprosto v pohodě:) To mi dělá větší starosti lekce sedmá:(

Nameless   NOVÝ
9. 12. 2006

to pretipovanie sa mi dako nezda pri tom

int *pi;
pi = (int * ) 08x000000; // adresa je zanedbatelna

lebo to vlastne nepretipoval kedze pointer pi uz malo typ(int) vo vrchnom riadku...nemalo tam byt (char * )??

Nesaya   NOVÝ
6. 8. 2007

Omlouvam se, nejde mi prihlasit ... ale i tak potrebuju pomoct, nevim, jestli sem jsem dobre pochopil ukazatele -> jestli jsem spravne vypracoval ukol (aspon dle bodu..).

#include <iostream>
using namespace std;
int main()
{
int cislo1 = 0;
int cislo2 = 0;
int cislo3 = 0;
int cislo4 = 0;
int cislo5 = 0;

int cislo6 = 4;
int cislo7 = 6;
int cislo8 = 2;
int cislo9 = 7;
int cislo10 = 1;
///////////////
cout << cislo1 << endl << cislo2 << endl << cislo3 << endl << cislo4 << endl << cislo5 << endl <<endl;
///////////////
int *cislo11 = &cislo6;
int *cislo12 = &cislo7;
int *cislo13 = &cislo8;
int *cislo14 = &cislo9;
int *cislo15 = &cislo10;

cout << *cislo11 << endl << *cislo12 << endl << *cislo13 << endl << *cislo14 << endl << *cislo15 << endl <<endl;
///////////////
cout << "Zadejte cislo, o ktere se ma zvysit/snizit petice cisel: ";
int prom;
cin >> prom;

*cislo11 = *cislo11 + prom;
*cislo12 = *cislo12 + prom;
*cislo13 = *cislo13 + prom;
*cislo14 = *cislo14 + prom;
*cislo15 = *cislo15 + prom;

cout << *cislo11 << endl << *cislo12 << endl << *cislo13 << endl << *cislo14 << endl << *cislo15 << endl;
///////////////
cin.get();
cin.get();
return 0;
}

Eversmann   NOVÝ
30. 8. 2007

Chyba Ti na konci vypis adries a inac to mas dobre, akurat si sa nedrzal presne zadania.
Toto som dal dohromady ja, ale tiez neviem, ci mam vsetko dobre:
#include<iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int a[]={0,0,0,0,0},i,c;
int *b[5];
for(i=0;i<5;i++){
cout<<"a["<<i<<"] = "<<a[i]<<endl;
b[i]=&a[i];
*b[i]=i;}
cout<<"\n";
for(i=0;i<5;i++)
cout<<"a["<<i<<"] = "<<a[i]<<endl;
cout<<"Zadaj cislo, ktore sa prirata\n";
cin>>c;
for(i=0;i<5;i++)
*b[i]+=+c;
for(i=0;i<5;i++)
cout<<a[i]<<" "<<&a[i]<<" "<<*b[i]<<" "<<b[i]<<endl;
system("pause");
return 0;
}

dannero   NOVÝ
25. 7. 2010

Ukazatelé mě také zpočátku odradily od C++,přitom je to tak jednoduché,každý kdo kdy dělal na PC používá a vytváří ukazatele každou chvíli aniž o tom ví.Prostě a jednoduše ukazatel je zástupce.A tak se s ním i pracuje,zástupce na ploše vašeho desktopu funguje úplně stejně jako ukazatel,odkazuje na umístnění souboru tak jako ukazatel ukazuje na danou proměnnou.Myslím že by proto byl pro ukazatel vhodnější název zástupce.

ejtix   NOVÝ
17. 5. 2011

Reagoval na komentář od uživatele dannero :
Souhlasim, ze stejneho duvodu sem se venoval jinym programovacim jazykum a az ted, kdyz me maturita donutila pochopit ukazatele, mi neprijde zas az tak tezke to neni , dekuji za clanek a za vhodne prirovnani od uzivatele dannero :)

Jeysym   NOVÝ
9. 8. 2012

 Tady je moje verze. 



int main()
{
    int cislo[5] = {0,0,0,0,0};
    for (int i=0; i<5; i++)
    {
        cout << i+1 << ". cislo je: " << cislo[i] << endl;
    }
    int *ukaz[5];
    cout << endl;
    for (int i=0; i<5; i++)
    {
        ukaz[i] = &cislo[i];
        *ukaz[i] = i+1;
        cout << "Nyni je " << i+1 << ". cislo: " << cislo[i] << endl;
    }
    cout << endl << "Zadejte jedno cislo ktere se bude pricitat: ";
    int temp;
    cin >> temp;
    for (int i=0; i<5; i++)
    {
        *ukaz[i] += temp;
        cout << "Nyni je " << i+1 << ". cislo: " << cislo[i] << endl;
    }
    cout << endl;
    for (int i=0; i<5; i++)
    {
        cout << "Adresa " << i+1 << ". cisla je: " << &cislo[i] << endl;
    }
    cin.get();
    cin.get();
return 0;
}
Alicek   NOVÝ
6. 12. 2012

Zdravím napsal jsem to ale chci se zeptat jestli to mám správně protoze nevim jestli sjem to pochopil :-)

#include <iostream>
using namespace std;

int main()
{
int cislo1 = 0;
int cislo2 = 0;
int cislo3 = 0;
int cislo4 = 0;
int cislo5 = 0;

cout<<"Cislo 1 : "<<cislo1<<endl;
cout<<"Cislo 2 : "<<cislo2<<endl;
cout<<"Cislo 3 : "<<cislo3<<endl;
cout<<"Cislo 4 : "<<cislo4<<endl;
cout<<"Cislo 5 : "<<cislo5<<endl;

int *a=&cislo1;
int *b=&cislo2;
int *c=&cislo3;
int *d=&cislo4;
int *e=&cislo5;
*a=10;
*b=16;
*c=25;
*d=12;
*e=14;
cout<<endl;

cout<<"Cislo 1 : "<<cislo1<<endl;
cout<<"Cislo 2 : "<<cislo2<<endl;
cout<<"Cislo 3 : "<<cislo3<<endl;
cout<<"Cislo 4 : "<<cislo4<<endl;
cout<<"Cislo 5 : "<<cislo5<<endl;

cout<<endl<<"Zadejte cislo : ";
int x;
cin>>x;

*a=10*x;
*b=16*x;
*c=25*x;
*d=12*x;
*e=14*x;

cout<<endl;

cout<<"Cislo 1 : "<<cislo1<<endl;
cout<<"Cislo 2 : "<<cislo2<<endl;
cout<<"Cislo 3 : "<<cislo3<<endl;
cout<<"Cislo 4 : "<<cislo4<<endl;
cout<<"Cislo 5 : "<<cislo5<<endl;

cout<<endl;

cout<<"Cislo 1 : "<<&cislo1<<endl;
cout<<"Cislo 2 : "<<&cislo2<<endl;
cout<<"Cislo 3 : "<<&cislo3<<endl;
cout<<"Cislo 4 : "<<&cislo4<<endl;
cout<<"Cislo 5 : "<<&cislo5<<endl;


system("pause");
return 0;
}

Tommy   NOVÝ
5. 4. 2013

Tu je moja verzia. Myslím, že by to malo byť v poriadku.

#include<iostream>

using namespace std;


int main(){

int *ukazovatel1;
int *ukazovatel2;
int *ukazovatel3;
int *ukazovatel4;
int *ukazovatel5;
int a,b,c,d,e;

cout<<"Zadaj prve cislo:";
cin>>a;
cout<<"Zadaj druhe cislo:";
cin>>b;
cout<<"Zadaj tretie cislo:";
cin>>c;
cout<<"Zadaj strvte cislo:";
cin>>d;
cout<<"Zadaj piate cislo:";
cin>>e;

cout<<endl<<"Adresy zadanych cisel:"<<endl<<&a<<endl<<&b<<endl<<&c<<endl<<&d<<endl<<&e<<endl<<endl;

ukazovatel1=&a;
ukazovatel2=&b;
ukazovatel3=&c;
ukazovatel4=&d;
ukazovatel5=&e;

cout<<"Ukazovatele ukazuju na adresy:"<<endl<<ukazovatel1<<endl<<ukazovatel2<<endl<<ukazovatel3<<endl<<ukazovatel4<<endl<<ukazovatel5<<endl;

*ukazovatel1=*ukazovatel1+5;
*ukazovatel2=*ukazovatel2+6;
*ukazovatel3=*ukazovatel3+8;
*ukazovatel4=*ukazovatel4+1;
*ukazovatel5=*ukazovatel5+5;


cout<<endl<<"Zadane cisla zmenene cez ukazovatele su:"<<endl<<a<<endl<<b<<endl<<c<<endl<<d<<endl<<e<<endl<<endl;

cout<<"Zadaj cislo, ktore ma byt pripocitane k cez ukazovatele:";
int cislo;
cin>>cislo;
*ukazovatel1=*ukazovatel1+cislo;
*ukazovatel2=*ukazovatel2+cislo;
*ukazovatel3=*ukazovatel3+cislo;
*ukazovatel4=*ukazovatel4+cislo;
*ukazovatel5=*ukazovatel5+cislo;
cout<<endl<<"Zmenene cisla pripocitanim zadaneho cisla cez ukazovatela su:"<<endl<<a<<endl<<b<<endl<<c<<endl<<d<<endl<<e<<endl<<endl;

return 0;

}

Cruppy   NOVÝ
23. 5. 2013
#include <iostream>
using namespace std;

int promenna[5]={0,0,0,0,0};
int *u1=&promenna[0];
int *u2=&promenna[1];
int *u3=&promenna[2];
int *u4=&promenna[3];
int *u5=&promenna[4];

int main()
{
	for (int i = 0; i<5; i++)
		cout<<"cislo: "<<i+1<<" = "<<promenna[i]<<endl;
	cout<<endl;
	*u1=5;
	*u2=6;
	*u3=8;
	*u4=1;
	*u5=5;
	for (int i = 0; i<5; i++)
		cout<<"cislo: "<<i+1<<" = "<<promenna[i]<<endl;
	cout<<endl<<"Zadejte cislo : ";
	int cislo=NULL;
	cin>>cislo;
	cout<<endl;
	*u1+=cislo;
	*u2+=cislo;
	*u3+=cislo;
	*u4+=cislo;
	*u5+=cislo;
	for (int i = 0; i<5; i++)
		cout<<"cislo: "<<i+1<<" = "<<promenna[i]<<endl;
	cout<<endl;
	for (int i = 0; i<5; i++)
		cout<<"adresa cisla: "<<i+1<<" = "<<&promenna[i]<<endl;
	cin.get();
	cin.get();
	return EXIT_SUCCESS;
}
Z_code   NOVÝ
29. 11. 2020
#include <iostream>

using namespace std;

/*
Vytvořte 5 proměnných a zrovna inicializujte na samé nuly. Necháte vypsat. Poté ke každé z nich
vytvoříte jednoho ukazatele a pomocí nich změníte postupně hodnoty původních proměnných. Necháte
vypsat. Nakonec necháte, aby uživatel zadal 1 číslo a o toto číslo se zvětší všechny hodnoty,
avšak přes ukazatele! A úplně nakonec vypíšete postupně u každého čísla jeho adresu.
*/
/*Příklad výsledku:
1. cislo = 0
2. cislo = 0
3. cislo = 0
4. cislo = 0
5. cislo = 0

1. cislo = 5
2. cislo = 6
3. cislo = 8
4. cislo = 1
5. cislo = 5

zadej cislo : 5

1. cislo = 10
2. cislo = 11
3. cislo = 13
4. cislo = 6
5. cislo = 10
*/

int main()
{
	// vytvoření pěti proměnných a jejich inicializace na 0
	int p1 = 0;
	int p2 = 0;
	int p3 = 0;
	int p4 = 0;
	int p5 = 0;
	
	cout << "p1 =" << p1 << endl << "p2 =" << p2 << endl << "p3 =" << p3 << endl << "p4 =" << p4 << endl << "p5 =" << p5 << endl << endl;

	//vytvoření pěti ukazatelů a přiřazení adres jednotlivých proměnných
	int* uk_p1 = &p1;
	int* uk_p2 = &p2;
	int* uk_p3 = &p3;
	int* uk_p4 = &p4;
	int* uk_p5 = &p5;

	//změna hodnoty původních proměnných pomoci ukazatelů
	*uk_p1 = 5;
	*uk_p2 = 6;
	*uk_p3 = 8;
	*uk_p4 = 1;
	*uk_p5 = 3;

	cout << "p1 =" << p1 << endl << "p2 =" << p2 << endl << "p3 =" << p3 << endl << "p4 =" << p4 << endl << "p5 =" << p5 << endl << endl;

	//vstup uživatele - neni nijak ošetřen proti blbosti uživatele
	cout << "Zsdej libovolné celé čislo: ";
	int vstup;
	cin >> vstup;

	//zvětšení hodnot proměnných o zadané číslo uživatelem
	*uk_p1 = 5 + vstup;
	*uk_p2 = 6 + vstup;
	*uk_p3 = 8 + vstup;
	*uk_p4 = 1 + vstup;
	*uk_p5 = 3 + vstup;

	cout << endl << "p1 =" << p1 << endl << "p2 =" << p2 << endl << "p3 =" << p3 << endl << "p4 =" << p4 << endl << "p5 =" << p5 << endl << endl;

	//výpis adres každého čísla
	cout << "Adresy ulozenych cisel:" << endl;
	cout << "p1 =" << &p1 << endl << "p2 =" << &p2 << endl << "p3 =" << &p3 << endl << "p4 =" << &p4 << endl << "p5 =" << &p5 << endl << endl;
	
	return 0;
}

Přidej svůj názor

×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:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



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