single
Osoittimet Rakenteisiin
Pyyhkäise näyttääksesi valikon
C-ohjelmointikielessä voit luoda osoittimia 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.
Pyyhkäise aloittaaksesi koodauksen
Sinulla on opiskelija, jolla on arvosanat 3 aineessa: Math, Physics ja Programming.
Tehtävänäsi on laskea opiskelijan keskiarvo ja selvittää, läpäisikö hän kurssin.
calculateAverageAndCheck-funktion sisällä:
- Pääsy jokaiseen aineen arvosanaan osoittimen avulla.
- Lisää kaikki kolme arvosanaa yhteen 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).
Example
| 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