Wat een goede vraag!
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Een programmeertaal moet keuzes mogelijk maken, zagen we vorige week. Dit zou dus het perfecte moment zijn om over if-then-else te beginnen. Maar ik begin met een keuzemogelijkheid in C die ik persoonlijk gewoon heel erg mooi vind. Niet omdat het heel knap is of omdat er heel bijzondere dingen mee mogelijk zijn, maar omdat ik hou van de compactheid, de esthetische kant. Toen ik een blauwe maandag natuurkunde studeerde aan de TU/e (met bijzonder weinig succes overigens) liep er een wedstrijd die draaide om het schrijven van extreem compacte C-code, zo onleesbaar mogelijk, maar wel degelijk functioneel. Kortom, programmeren zoals een hobbyist, een amateur en erg onprofessioneel. Ik hou daar van.
In C noem je een teken als + of - een operator. Het doet iets met een of twee waarden, het voert een "operatie" uit op die waarden. Sommige operators, zoals ++ bijvoorbeeld, werken op één waarde en heten unaire operators, andere op twee, de binaire operators. Dus bijvoorbeeld:
#include <stdio.h>
int main() {
int i = 1+1; // + operator op twee waarden
int a = i++; // a == 2
int b = ++i; // b == 4
return 0;
}
Er is echter een operator, de enige, in C die op drie waarden, of operanden, werkt. Die heet voor het gemak dan ook de ternaire operator. Deze ziet er uit als een vraagteken en het is een nogal compacte manier om te zeggen:
ALS operand1 = waar DAN is de uitkomst operand2 ANDERS operand3
In ons programmaatje hier voor zou dat er zo uit kunnen zien:
#include <stdio.h>
int main() {
int i = 1+1; // + operator op twee waarden
int a = i++; // a == 2
int b = ++i; // b == 4
int c = (i == 5) ? 6 : 7;
return 0;
}
Probeer het eerst te beredeneren, en probeer dan uit wat de waarde van c is.
Gerelateerd
Wat een goede vraag!
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Undefined human behavior
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Goed onthouden graag
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Hoe werken computers echt?
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
Undefined behavior
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gooit het na een reeks over Pascal over een andere boeg en gaat aan de slag met C.
