Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Void-Osoittimien Ymmärtäminen | Osoittimet
C:n Perusteet

bookVoid-Osoittimien Ymmärtäminen

Kun näit ensimmäisen kerran void-avainsanan, se viittasi funktioihin, jotka eivät palauta arvoa. Et voi luoda muuttujaa tyyppiä void, mutta voit määritellä void*-osoittimen, joka voi sisältää minkä tahansa tietotyypin osoitteen.

Note
Huomio

Jos olet käynyt läpi osoitinharjoitukset tässä osiossa, tiedät, että kaikki osoittimet vievät 8 tavua muistia. void*-osoitin ei ole poikkeus.

void*-osoitin ei ole sidottu mihinkään tiettyyn tietotyyppiin. Tämä joustavuus mahdollistaa minkä tahansa tietotyypin osoitteen tallentamisen siihen. Tässä on kuitenkin rajoitus: et voi dereferoida void*-osoitinta.

Note
Huomio

Tämä rajoitus johtuu samasta syystä, miksi et voi määritellä muuttujia tyypillä void. Suorita eksplisiittinen tyyppimuunnos!

Main.c

Main.c

copy
1234567891011121314151617181920
#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }

Onnittelut C-ohjelmoinnin perusteiden suorittamisesta! Edistyäksesi edelleen, tutustu aiheisiin kuten makrot, lajittelualgoritmit ja tietorakenteet. Linux-jakelun opiskelu auttaa sinua myös kehittymään taitavaksi C-ohjelmoijaksi.

question mark

Kuinka haet void-osoittimen arvon?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain why you can't dereference a void pointer?

What are some common uses for void pointers in C?

Can you give examples of how to cast a void pointer to another type?

Awesome!

Completion rate improved to 2.63

bookVoid-Osoittimien Ymmärtäminen

Pyyhkäise näyttääksesi valikon

Kun näit ensimmäisen kerran void-avainsanan, se viittasi funktioihin, jotka eivät palauta arvoa. Et voi luoda muuttujaa tyyppiä void, mutta voit määritellä void*-osoittimen, joka voi sisältää minkä tahansa tietotyypin osoitteen.

Note
Huomio

Jos olet käynyt läpi osoitinharjoitukset tässä osiossa, tiedät, että kaikki osoittimet vievät 8 tavua muistia. void*-osoitin ei ole poikkeus.

void*-osoitin ei ole sidottu mihinkään tiettyyn tietotyyppiin. Tämä joustavuus mahdollistaa minkä tahansa tietotyypin osoitteen tallentamisen siihen. Tässä on kuitenkin rajoitus: et voi dereferoida void*-osoitinta.

Note
Huomio

Tämä rajoitus johtuu samasta syystä, miksi et voi määritellä muuttujia tyypillä void. Suorita eksplisiittinen tyyppimuunnos!

Main.c

Main.c

copy
1234567891011121314151617181920
#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }

Onnittelut C-ohjelmoinnin perusteiden suorittamisesta! Edistyäksesi edelleen, tutustu aiheisiin kuten makrot, lajittelualgoritmit ja tietorakenteet. Linux-jakelun opiskelu auttaa sinua myös kehittymään taitavaksi C-ohjelmoijaksi.

question mark

Kuinka haet void-osoittimen arvon?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 6
some-alt