Viittauksen purkaminen ptr.*-syntaksilla
Lukekaa ja kirjoittakaa osoittimen kautta.
Viittauksen purkaminen ptr.*-syntaksilla on ilmainen Zig Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Zig Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Zig Academy-kurssilla on yhteensä 4 oppituntia.
Arvon saavuttaminen
Osoitin sisältää osoitteen, ei arvoa. Osoittimen takana olevan arvon käyttämiseksi osoitin on ensin dereferoitava.
Syntaksi .*
Zig dereferoi osoittimen sen perään kirjoitettavalla .*-merkinnällä. Siksi ptr.* tarkoittaa arvoa, johon ptr tällä hetkellä osoittaa.
var x: i32 = 7;
const p = &x;
const v = p.*;Lukeminen osoittimen kautta
Kun kirjoitatte lausekkeeseen ptr.*, luette osoittimen kohdearvon ja saatte tavallisen kopion, jota voitte käyttää missä tahansa.
const doubled = p.* * 2;Kirjoittaminen osoittimen kautta
Sijoittakaa ptr.* sijoituslauseen vasemmalle puolelle, jos haluatte kirjoittaa uuden arvon alkuperäiseen muistipaikkaan.
p.* = 99;Muutokset näkyvät
Koska osoitin jakaa alkuperäisen tallennustilan, sen kautta kirjoittaminen päivittää myös muuttujan, jonka muut näkevät.
var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5Nuolioperaattoria ei ole
Zigissä ei ole C:n kaltaista ->-operaattoria. Luettepa kentän tai kirjoitatte siihen, käytätte aina samaa .*-dereferointia.
Dereferointi ja sitten kenttä
Struct-rakenteeseen osoittavan osoittimen kanssa p.field toimii suoraan: Zig dereferoi automaattisesti kenttää käytettäessä, joten .* jää pois.
const p = &point;
const y = p.y;Eksplisiittinen muoto on sallittu
Voitte silti kirjoittaa muodon p.*.field, mutta lyhyempi p.field on Zigissä idiomattinen ja selkeämpi.
const estää kirjoittamisen
Jos osoitin on tyyppiä *const T, ptr.* on vain luettavissa. Sen kautta yrittäminen aiheuttaa käännösvirheen.
const x: i32 = 3;
const p = &x;
// p.* = 4; // errorDereferointi laskutoimituksissa
Voitte käyttää ptr.*-merkintää missä tahansa, johon arvo sopii, myös laskutoimituksissa. Siksi p.* + 1 tarkoittaa yksinkertaisesti kohdearvoa plus yhtä.
const next = p.* + 1;Yleinen virhe
.*-merkinnän unohtaminen yrittää käyttää osoitetta lukuna, mikä on tyyppivirhe. Zig havaitsee sen käännösaikana, ei suorituksen aikana.
Pikakoe
Teillä on const p = &x ja haluatte tallentaa uuden luvun x:ään p:n kautta. Mitä kirjoitatte?
Kertaus
Käyttäkää ptr.*-merkintää osoittimen kohdearvon lukemiseen tai kirjoittamiseen. Struct-kentät dereferoidaan automaattisesti, ja *const T -osoittimet pysyvät vain luettavina. 🎯
Opi Zig tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Viittauksen purkaminen ptr.*-syntaksilla” ilmainen?
Kyllä – oppitunnin ”Viittauksen purkaminen ptr.*-syntaksilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Zig Academy-kurssin, päivitä CoddyKit PROhon. Zig Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Viittauksen purkaminen ptr.*-syntaksilla”?
Lukekaa ja kirjoittakaa osoittimen kautta. Harjoittelet Zig Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Zig Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Zig Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Viittauksen purkaminen ptr.*-syntaksilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Zig Academy-oppitunnilla?
Kyllä. Jokainen Zig Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Yhden alkion osoittimet *T-tyypillä
- Viittauksen purkaminen ptr.*-syntaksilla
- Monen alkion osoittimet [*]T
- Vakiotyyppiset osoittimet ja kohdistus