Skoči na vsebino

IPB




Slika

Kazalci

programiranje kazalci

Odgovorov v temi: 3

#1 rambek

rambek

    nOObie

  • Members
  • 23 objav
  • Spol:Moški

Objavljeno 06 junij 2013 - 19:20

A ve kdo kako bi se lotil te naloge v c++ ???

S pomočjo kazalcev načrtuj in kodiraj pridobivanje treh celih števil .števila izpiši v obratbem vrstnem redu.



#2 DaMachk

DaMachk

    Gospod s kravato

  • Members
  • 1 446 objav
  • Spol:Moški

Objavljeno 07 junij 2013 - 00:30

enostavno, dejansko...

 

Postaviš lahko en kazalec...

npr:

 

 

int* stevila;

ta kazalec lahko sedaj uporabljaš na dva različna načina...

En način je, da ga uporabiš podobno kot običajen intiger, v tem primeru je pametno ga prvo inicializirat, da se postavi nekam na prosto mesto.

 

stevila = new int;

nato do tega dostopaš preko de-reference kazalca...

 

*stevila = 100;

s tem, ko si dal * pred imenom spremenljivke, si dereferenciral kazalec...

Kaj to pomeni?

Kazalec kaže na neko lokacijo v pomnilniku. Z referenco dobiš ta naslov... dereferenciranje je pa dostopanje do tega naslova, skratka isto, kot bi uporabil običajno spremenljivko.

 

In če slediš tem prvem pristopu, lahko ustvariš tri take spremenljivke in jih vneseš z običajnim cin...

 

Drug pristop je, da kazalec inicializiraš kot polje / tabelo (ne vem kako jim rečete pri vas, vsak drugač reče... array, v glavnem)

Pri tem imaš spet dva pristopa:

 

starejši, C-jevski:

 

stevila=malloc(3 * sizeof(int));

tu pač določiš prostor za 3 integer števila.

 

 

ali C++

 

stevila = new int[3];

 

 

Učinek je povsem enak, zato lahko kasneje dostopaš do niju na povsem enak način...

 

torej

 

cin>>stevila[2];

cin>>stevila[1];

cin>>stevila[0];

 

 

in potem izpišeš

 

cout<<stevila[0]<<endl;

itd...

 

Je pa še drug način dostopanja, ki se ga raje ne lotevaj, ti ga pa pokažem zgolj za referenco:

 

 

cout<<*stevila<<endl;

stevila++; //se pomakneš na naslednji element polja

cout<<*stevila<<endl;

 

 

Za hec lahko ustvariš neko spremenljivko in se igraš z vrednostmi, kazalci ter referencami.

 

Npr:

 

int a=20;
	int* k=&a; //kažemo na a

	cout<<"vrednost a: "<<a<<"\nKam kaze kazalec: "<<k<<
		"\nKaksna je vrednost tam kjer kaze: "<<*k<<
		"\nKje je lokacija kazalca: " <<&k<<
		"\nKje je lokacija a-ja: "<<&a<<endl;

	//povecamo vrednost na lokaciji kamor kaze k:
	(*k)++;
	cout<<endl<<endl<<a<<endl<<*k<<endl;

Tu boš videl, da sta lokacija, kjer je a in kam kaže kazalec k, enaki.



#3 rambek

rambek

    nOObie

  • Members
  • 23 objav
  • Spol:Moški

Objavljeno 09 junij 2013 - 11:37

ok hvala  samo pri meni javi nekkašno napako !



#4 DaMachk

DaMachk

    Gospod s kravato

  • Members
  • 1 446 objav
  • Spol:Moški

Objavljeno 09 junij 2013 - 19:45

Dobro bi bilo vedet kakšno napako...

 

Jz iskreno upam, da si to napisal v main funkcijo z ustreznimi namespace-i in knjižnicami.





Dodaj odgovor



  



Podobne teme s ključnimi besedami: programiranje, kazalci

0 član(ov) bere to temo

0 članov, 0 gostov, 0 anonimnih uporabnikov