C Academy · Oppitunti

Operaattorien etusijajärjestys

Lausekkeiden arviointijärjestys.

Oppitunti 4/413 vaihetta

Operaattorien etusijajärjestys on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/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 C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 4 oppituntia.

Miksi operaattorien tärkeysjärjestyksellä on väliä

Tärkeysjärjestys määrittää, mikä operaattori suoritetaan ensin useita operaattoreita sisältävässä lausekkeessa. Se vastaa tavallista matematiikkaa: kertolasku ennen yhteenlaskua.

#include <stdio.h>
int main(void) {
    printf("%d\n", 2 + 3 * 4);
    return 0;
}

Sulkeet ohittavat oletusjärjestyksen

Sulkeet pakottavat evaluointijärjestyksen. Käyttäkää niitä tarkoituksen selkeyttämiseen ja oletusjärjestyksen ohittamiseen.

#include <stdio.h>
int main(void) {
    printf("%d\n", (2 + 3) * 4);
    return 0;
}

Aritmeettisten operaattorien tärkeysjärjestys

Aritmeettisista operaattoreista * / % sitoutuvat tiukemmin kuin + -. Suuremman prioriteetin operaattorit suoritetaan ensin.

#include <stdio.h>
int main(void) {
    int r = 10 - 2 * 3;
    printf("r = %d\n", r);
    return 0;
}

Assosiatiivisuus

Kun operaattoreilla on sama prioriteetti, assosiatiivisuus määrittää suunnan. Useimmat aritmeettiset operaatiot suoritetaan vasemmalta oikealle.

#include <stdio.h>
int main(void) {
    int r = 20 / 4 / 2;
    printf("r = %d\n", r);
    return 0;
}

Sijoituksen oikealta vasemmalle assosiatiivisuus

Sijoitus ryhmitellään oikealta vasemmalle. Siksi a = b = 5 sijoittaa ensin arvon 5 muuttujalle b ja sitten muuttujalle a.

#include <stdio.h>
int main(void) {
    int a, b;
    a = b = 5;
    printf("a = %d, b = %d\n", a, b);
    return 0;
}

Vertailut ja aritmetiikka

Aritmetiikalla on suurempi prioriteetti kuin relaatio-operaattoreilla, joten a + b > c laskee ensin arvon a + b.

#include <stdio.h>
int main(void) {
    int a = 2, b = 3, c = 4;
    printf("%d\n", a + b > c);
    return 0;
}

Relaatio-operaattorit ja loogiset operaattorit

Relaatio-operaattoreilla on suurempi prioriteetti kuin operaattorilla &&, jolla puolestaan on suurempi prioriteetti kuin operaattorilla ||.

#include <stdio.h>
int main(void) {
    int x = 5;
    if (x > 0 && x < 10)
        printf("single digit positive\n");
    return 0;
}

Unaariset ennen binäärisiä

Unaariset operaattorit, kuten ! ja unaarioperaattori -, sitoutuvat hyvin tiukasti ja niitä sovelletaan ennen binäärioperaattoreita.

#include <stdio.h>
int main(void) {
    int x = 0;
    printf("%d\n", !x + 1);
    return 0;
}

Hankala lauseke

Ilman sulkeita tässä lausekkeessa yhdistyvät useat prioriteettitasot. Selvittäkää sen suoritusjärjestys huolellisesti.

#include <stdio.h>
int main(void) {
    int r = 2 + 3 * 4 > 10 && 1;
    printf("r = %d\n", r);
    return 0;
}

Jos olette epävarmoja, käyttäkää sulkeita

Hyvässä C-koodissa käytetään sulkeita runsaasti. Ne eivät aiheuta suoritusaikana kustannuksia ja estävät vaikeasti havaittavia virheitä.

#include <stdio.h>
int main(void) {
    int a = 1, b = 2, c = 3;
    if ((a < b) && (b < c))
        printf("ascending\n");
    return 0;
}

Prioriteetti käytännössä

Tässä prioriteetin ansiosta voimme kirjoittaa selkeän kaavan ilman ylimääräisiä sulkeita.

#include <stdio.h>
int main(void) {
    int base = 10, rate = 2, hours = 3;
    int pay = base + rate * hours;
    printf("pay = %d\n", pay);
    return 0;
}

Pikatarkistus

Testatkaa ymmärryksenne operaattoreiden prioriteetista.

Kertaus: operaattoreiden prioriteetti

Opitte, miten C määrittää operaattoreiden suoritusjärjestyksen.

  • * / % ennen operaattoreita + -
  • Aritmetiikka ennen relaatio-operaattoreita ja relaatio-operaattorit ennen loogisia operaattoreita
  • Useimmat operaattorit ovat vasemmalta oikealle assosiatiivisia, sijoitus on oikealta vasemmalle assosiatiivinen
  • Unaariset operaattorit sitoutuvat tiukasti
  • Sulkeet tekevät tarkoituksen yksiselitteiseksi
Aloita maksutta

Opi C 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
39
Oppitunnit
144

Usein kysytyt kysymykset

Onko oppitunti ”Operaattorien etusijajärjestys” ilmainen?

Kyllä – oppitunnin ”Operaattorien etusijajärjestys” 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 C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Operaattorien etusijajärjestys”?

Lausekkeiden arviointijärjestys. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Operaattorien etusijajärjestys”-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ä C Academy-oppitunnilla?

Kyllä. Jokainen C 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

  1. Aritmeettiset operaattorit
  2. Relationaaliset ja loogiset operaattorit
  3. Sijoitus ja kasvatus
  4. Operaattorien etusijajärjestys
← Takaisin: C Academy