En riktig nybörjare undrar lite om pekare

Permalänk
Medlem

En riktig nybörjare undrar lite om pekare

Tjenare! Har precis börjat med programmering B på gymnasiet.
Har ett litet problem med dessa jäkla pekare.
Vi skall göra ett program där vi ska med hjälp av pekare, peka ut en hund som "syndare". Jag har försökt använda tecken som namn, det fungerade inte. Då pekade jag ut med siffran 41 istället.
Som ni förstår i slutet när man undrar vad "hund" har för värde, så kommer det ju upp 41.
Det är alltså det här "41" jag vill ha till "syndare" istället....
Kunde nån snäll själ kanske ge mig tips om hur man gör!
Gärna pedagogisk då jag faktiskt letar efter kunskapen, och inte resultatet!

int hund = 41;
int* status;
status = &hund;
int vad_ar_hunden = *status;
cout << hund << endl;

Visa signatur

Primum non nocere

Permalänk
Medlem
Skrivet av VolvoSwe:

Tjenare! Har precis börjat med programmering B på gymnasiet.
Har ett litet problem med dessa jäkla pekare.
Vi skall göra ett program där vi ska med hjälp av pekare, peka ut en hund som "syndare". Jag har försökt använda tecken som namn, det fungerade inte. Då pekade jag ut med siffran 41 istället.
Som ni förstår i slutet när man undrar vad "hund" har för värde, så kommer det ju upp 41.
Det är alltså det här "41" jag vill ha till "syndare" istället....
Kunde nån snäll själ kanske ge mig tips om hur man gör!
Gärna pedagogisk då jag faktiskt letar efter kunskapen, och inte resultatet!

int hund = 41;
int* status;
status = &hund;
int vad_ar_hunden = *status;
cout << hund << endl;

Du kan inte använda integer då detta är för siffror! använd string istället.

Du kör?:

Dim int_hund as integer

Kör:

Dim hund as string

Eller jag kanske inte fattar vad du gör

Permalänk
Medlem
Skrivet av kobb3:

Du kan inte använda integer då detta är för siffror! använd string istället.

Du kör?:

Dim int_hund as integer

Kör:

Dim hund as string

Eller jag kanske inte fattar vad du gör

Dim? Får en känsla av att TS använder C++.

Hur som helst, TS. Har du definierat en variabel som strängen "syndare" då?

Visa signatur

Osocial, instängd och förbannad.

Permalänk
Medlem

Jag tycker det är lättast att förstå i kod, så här kommer ett exempel med kommentarer

#include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { //Vi skapar en text som håller texten "syndare" //string används för texter. //Det motsvarar din "int hund = 41" string hund = "syndare"; //Nästa steg skapar vi en pekare till denna string //Detta motsvarar din "int* status" string* status; //Sedan låter vi status lagra addressen till hund, detta fungerar prices på samma sätt som med integers status = &hund; //Sedan skapar vi en string som vi ger värdet av variablen som status pekar på. //Alltså, status pekar på hund, vi ger "vad_ar_hunden" det värdet som hund är // *status returnerar alltså värdet på variablen som den pekar på... string vad_ar_hunden = *status; //Sedan skriver vi ut det... cout << vad_ar_hunden << endl; //Jag antar att det är "vad_ar_hunden" du menade i din kod och inte hund. För annars skulle vi inte ha gjort någon nytta :) //Nu ökar vi nivån ett steg. { //vi byter scope bara för att inte krocka med variabelnamnen, inget vi ska lägga fokus på utan använder det som ett litet fulhack bara //Deklarera hund och definera den till "syndare" string hund = "syndare"; //Vi deklarerar en pekare och definerar den till addressen till hund. string *syndaren = &hund; //Vi kan direkt komma åt texten i parametrar utan att använda en mellan liggande variabel (vad_ar_hunden) //Skriv ut värdet på variablen som syndaren pekar på cout << *syndaren << endl; } //bara för att inte krocka med variabelnamnen //Pausar programmet... getchar(); return 0; }

Visa signatur

citera!

Permalänk
Medlem

Ojoj! Tack för alla svar, gick och la mig tidigt igår kväll. Ska titta lite mer noggrant på det ni skrev idag/ikväll! Jätteschysst

Visa signatur

Primum non nocere