C-osoittimet

Osoittimet ovat tehokkaita C- ja C ++ -ohjelmoinnin ominaisuuksia. Ennen kuin opimme osoittimia, oppikaa oppimaan C-ohjelmoinnin osoitteista.

Osoite C: ssä

Jos ohjelmassasi on muuttuja var, &var antaa osoitteen muistiin.

Olemme käyttäneet osoitetta useita kertoja käyttäessämme scanf() -toimintoa.

Täällä käyttäjän syöttämä arvo tallennetaan muuttujan muuttujan osoitteeseen. Otetaan toimiva esimerkki.

Tulos

var: 5 address of var: 2686778

Huomaa: Saat todennäköisesti toisen osoitteen, kun suoritat yllä olevan koodin.

C Osoittimet

Osoittimet (osoitinmuuttujat) ovat erityisiä muuttujia, joita käytetään osoitteiden eikä arvojen tallentamiseen.

Osoittimen syntakse

Näin voimme ilmoittaa osoittimet.

Tässä on ilmoitettu osoitin p, jonka tyyppi on int.

Sinä voi myös ilmoittaa osoittimet näillä tavoilla.

Otetaan toinen esimerkki osoittimien ilmoittamisesta.

Tässä olemme ilmoittaneet osoittimen p1 ja normaalin muuttujan p2.

Osoitteiden osoittaminen osoittimille

Otetaan esimerkit.

Tässä 5 osoitetaan muuttujalle c. Ja c: n osoite osoitetaan pc-osoittimelle.

Hanki osoittimien osoittaman asian arvo

Saadaksesi osoittimien osoittaman asian arvon käytämme * -operaattori. Esimerkki:

Täällä c osoitetaan PC-osoittimelle. Saadaksesi kyseiseen osoitteeseen tallennetun arvon käytimme * pc: tä.

Huomaa: Yllä olevassa esimerkissä pc on osoitin, ei *pc. *pc = &c;

Muuten * kutsutaan poikkeamaoperaattoriksi ( kun työskentelet osoittimien kanssa). Se toimii osoittimella ja antaa kyseiseen osoittimeen tallennetun arvon.

Osoittimien osoittaman arvon muuttaminen

Otetaan esimerkki.

Olemme osoittaneet c: n osoitteen pc-osoittimeen.

Sitten muutimme c: n arvon arvoksi 1. Koska pc ja c: n osoite on sama, *pc antaa meille 1.

Otetaan toinen esimerkki.

Olemme määrittäneet c-osoitteen pc-osoittimeen.

Sitten muutimme *pc arvoksi 1 käyttämällä *pc = 1;. Koska pc ja c: n osoite ovat samat, c on yhtä suuri kuin 1.

Otetaan vielä yksi esimerkki.

Aluksi c: n osoite osoitetaan pc-osoittimelle pc = &c; avulla. Koska c on 5, *pc antaa meille 5.

Sitten osoitetaan d: n osoite pc-osoittimeen käyttämällä pc = &d;. Koska d on -15, *pc antaa meille -15 .

Esimerkki: Osoittimien työskentely

Otetaan toimiva esimerkki.

Tulos

Address of c: 2686784Value of c: 22Address of pointer pc: 2686784Content of pointer pc: 22Address of pointer pc: 2686784Content of pointer pc: 11Address of c: 2686784Value of c: 2

Ohjelman selitys

  1. int* pc, c;

    Täältä , osoitin-pc ja normaali muuttuja c, molemmat tyyppiä int, luodaan.
    Koska pc: tä ja c: tä ei alusteta alussa, osoitin-PC osoittaa joko ei osoitetta tai satunnainen osoite. Ja muuttujalla c on osoite, mutta se sisältää satunnaisen roska-arvon.
  2. c = 22;

    Tämä määrittää 22 muuttujalle c. Toisin sanoen 22 on tallennettu muuttujan c muistipaikkaan.
  3. pc = &c;

    Tämä määrittää muuttujan c osoitteen osoitin-pc: lle.
  4. c = 11;

    Tämä antaa 11 muuttujalle c.
  5. *pc = 2;

    Tämä muuttaa osoitinkortin osoittaman muistipaikan arvon arvoksi 2.

Yleisiä virheitä osoitinten kanssa työskenneltäessä

Oletetaan, että haluat osoittimen osoittamaan c-osoitetta. Sitten

Tässä esimerkki osoittimien syntaksin aloittelijoista on usein hämmentävää.

Miksi ei löydy virhettä, käytät int *p = &c;?

Se johtuu siitä, että

vastaa

Molemmissa tapauksissa luomme osoittimen p (ei *p) ja määritetään sille &c.

Tämän sekaannuksen välttämiseksi voimme käyttää lausetta näin:

Nyt tiedät mitä osoittimet ovat, opit kuinka osoittimet liittyvät seuraavan opetusohjelman matriiseihin.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *