V této pokračující sérii výukových programů programování v C jsme již diskutovali o některých základních věcech, jako jsou aritmetické, logické a relační operátory a také podmíněné smyčky jako 'if' a 'while'. Kromě toho se tento tutoriál zaměří na operátory přiřazení (jiné než =) a podmíněné výrazy.
Začněme operátory přiřazení. Pokud jste dosud vytvářeli základní programy v C (což jsem si jist, že byste to udělali zejména po sledování naší série tutoriálů), je vysoká pravděpodobnost, že byste udělali něco podobného následujícímu:
a = a + 1;
Správně?
Nová věc, kterou se dnes naučíme, je, že tento výraz můžete přepsat následovně:
a += 1;
Ano, +=je operátor a nazývá se také operátor přiřazení.
Nyní, když řeknu, že pomocí operátorů přiřazení, jako jsou tyto, je kód kompaktnější a čitelnější, někteří z vás mohou namítnout, že v kontextu příkladu, který jsme použili, by byl operátor přírůstku stejně dobrý, protože také zajišťuje hodnotu „a“. ' se zvýší o 1.
a++;
Souhlasím, ale představte si jiné scénáře, jako je tento:
b = b + 10;
b = b + c
V těchto případech použití operátoru přiřazení rozhodně usnadňuje psaní, čtení a kontrolu kódu v jednom kroku.
Stále nejste přesvědčeni? Možná vám následující obecný příklad poskytne ještě lepší představu o hodnotě operátorů přiřazení. Podívejte se:
arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] = arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] + 5
Porozumění tomuto řádku kódu chvíli trvá, protože se musíte ujistit, že dvě pole (na každé straně operátoru =) odkazují na stejnou hodnotu nebo ne. V tomto případě ano, takže lepší způsob by bylo použít operátor přiřazení následujícím způsobem:
arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] += 5;
Takže použití operátoru přiřazení v tomto případě nejen učinilo řádek velmi snadno pochopitelným, ale také jej učinilo více kompilátorovým v tom smyslu, že může pomoci kompilátoru vytvářet efektivní kód.
Nyní, když jste přesvědčeni (opravdu doufám, že ano) o tom, že operátory přiřazení jsou užitečné, zde je seznam operátorů, které mají odpovídající binární operátor:
+ - * / % << >> & ^ |
Prvních pět operátorů v seznamu jsme již probrali v našich tutoriálech. Posledních pět jsou bitové operátory a budeme o nich diskutovat v jednom z našich nadcházejících tutoriálů. Mezitím je zde rychlý odkaz na operátory přiřazení odpovídající některým z těchto operátorů:
a += b;
a -= b;
a *= b;
a /= b;
a %= b;
Obecně tedy můžete mít na paměti, že následující:
expression1 = (expression1) op (expression2)
lze vyjádřit jako:
expression1 op= expression2
kde 'op' je používaný operátor, například +, -, * a další.
Vezměte prosím na vědomí, že následující výraz a jemu podobné výrazy:
a *= b - c
se rozbalí jako:
a = a * (b-c)
Doufám, že se mi alespoň na základní úrovni podařilo objasnit koncept operátorů přiřazení. Pokračujeme, nyní rychle probereme podmíněné výrazy.
Vezměte si následující příklad:
if(a==b)
c = c + 1;
else
c = c - 1;
Podmíněné výrazy vám pomohou napsat podobné logiky na jeden řádek. Zde je postup:
c = (a==b) ? (c+1) : (c -1)
Zde se tedy nejprve zkontroluje podmínka (a==b). Pokud je to pravda, pak (c+1) je přiřazeno c, jinak (c-1) je přiřazeno c. Zde je ukázkový kód, aby byly věci jasnější:
int main()
{
int a = 6, b = 5, c = 9;
c = (a==b) ? (c+1) : (c -1) ;
printf("\n %d \n", c);
return 0;
}
Protože a zde není rovno b, je přiřazeno c (c-1), což znamená, že nová hodnota c bude 8. Pro případ, že byste potřebovali, zde je obecná forma podmíněných výrazů:
expression1 ? expression2 : expression3
Doufám, že máte základní představu o operátorech přiřazení a podmíněných výrazech. Nyní vás vyzýváme, abyste je používali ve svých každodenních činnostech kódování, a pokud narazíte na jakýkoli problém, nezapomeňte nám zde zanechat komentář.
-
Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy
-
Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy
-
Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy