Osoittimet Rakenteisiin
C-ohjelmointikieli mahdollistaa osoittimien luomisen ei ainoastaan tavallisiin tietotyyppeihin, vaan myös rakenteisiin (koska rakenne on käyttäjän määrittelemä tietotyyppi).
Osoittimen määrittely ja alustaminen näyttää tältä:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Jos <name_of_pointer> on osoitin rakenteeseen,
niin *(<name_of_pointer>) on itse rakenne.
Rakenteen kenttiin pääsee käsiksi osoittimen kautta käyttämällä ->-operaattoria.
-> on rakenteen kenttien käyttöoperaattorin . vastine
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Tämä ohjelma havainnollistaa, kuinka työskennellään Point-rakenteen kanssa, joka tallentaa kaksi koordinaattia, x ja y. main-funktiossa luodaan p1-muuttuja ja sille annetaan koordinaattiarvot, minkä jälkeen alustetaan osoitin tähän rakenteeseen. Käyttämällä ->-operaattoria ohjelma käsittelee rakenteen kenttiä osoittimen kautta ja tulostaa pisteen koordinaatit näytölle.
Swipe to start coding
Opiskelijalla on arvosanat 3 aineessa: matematiikka, fysiikka ja ohjelmointi.
Tehtävänäsi on laskea opiskelijan keskiarvo ja selvittää, onko hän läpäissyt kurssin.
calculateAverageAndCheck-funktion sisällä:
- Hae jokaisen aineen arvosana osoittimen avulla.
- Laske yhteen kaikki kolme arvosanaa saadaksesi kokonaistuloksen.
- Jaa kokonaistulos luvulla
3.0laskeaksesi keskiarvon. - Vertaa tulosta läpipääsyrajaan 60.
- Jos keskiarvo on suurempi tai yhtä suuri kuin 60, palauta
true(opiskelija läpäisi). - Muussa tapauksessa palauta
false(opiskelija ei läpäissyt).
Esimerkki
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 4.35
Osoittimet Rakenteisiin
Pyyhkäise näyttääksesi valikon
C-ohjelmointikieli mahdollistaa osoittimien luomisen ei ainoastaan tavallisiin tietotyyppeihin, vaan myös rakenteisiin (koska rakenne on käyttäjän määrittelemä tietotyyppi).
Osoittimen määrittely ja alustaminen näyttää tältä:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Jos <name_of_pointer> on osoitin rakenteeseen,
niin *(<name_of_pointer>) on itse rakenne.
Rakenteen kenttiin pääsee käsiksi osoittimen kautta käyttämällä ->-operaattoria.
-> on rakenteen kenttien käyttöoperaattorin . vastine
main.c
12345678910111213141516171819202122#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }
Tämä ohjelma havainnollistaa, kuinka työskennellään Point-rakenteen kanssa, joka tallentaa kaksi koordinaattia, x ja y. main-funktiossa luodaan p1-muuttuja ja sille annetaan koordinaattiarvot, minkä jälkeen alustetaan osoitin tähän rakenteeseen. Käyttämällä ->-operaattoria ohjelma käsittelee rakenteen kenttiä osoittimen kautta ja tulostaa pisteen koordinaatit näytölle.
Swipe to start coding
Opiskelijalla on arvosanat 3 aineessa: matematiikka, fysiikka ja ohjelmointi.
Tehtävänäsi on laskea opiskelijan keskiarvo ja selvittää, onko hän läpäissyt kurssin.
calculateAverageAndCheck-funktion sisällä:
- Hae jokaisen aineen arvosana osoittimen avulla.
- Laske yhteen kaikki kolme arvosanaa saadaksesi kokonaistuloksen.
- Jaa kokonaistulos luvulla
3.0laskeaksesi keskiarvon. - Vertaa tulosta läpipääsyrajaan 60.
- Jos keskiarvo on suurempi tai yhtä suuri kuin 60, palauta
true(opiskelija läpäisi). - Muussa tapauksessa palauta
false(opiskelija ei läpäissyt).
Esimerkki
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Ratkaisu
Kiitos palautteestasi!
single