GNU/Linux >> Znalost Linux >  >> Linux

Linux C výuka programování, část 11 - Aritmetické, relační a logické operátory

Až dosud jsme v této sérii výukových programů pro programování v jazyce C diskutovali o základních věcech, jako jsou funkce, pole, proměnné a další. Pokračujeme-li v toku, v tomto tutoriálu probereme další takový základní koncept:operátory.

Jako začátečník v programovacím jazyce C se budete zabývat především třemi druhy operátorů:aritmetickým, relačním a logickým. Začněme airthmetickými operátory.

V C je v podstatě 5 typů aritmetických operátorů: +, -, *, / a %. Zatímco +, - a / jsou samozřejmé, * odkazuje na násobení a % je modulový operátor. V případě, že si nejste vědomi, operátor % vám poskytne zbytek. Například:

a % b

Zde operátor % zajišťuje, že dostanete hodnotu zbytku, když je 'a' děleno 'b.' To znamená, že zbytek může být nula v případech, kdy „a“ ​​je zcela dělitelné „b“. Zde je malý příklad, který by vám měl tyto operátory lépe objasnit:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = a + b;
printf("%d\n", c);

c = a - b;
printf("%d\n", c);

c = a*b;
printf("%d\n", c);

c = a/b;
printf("%d\n", c);

c = a%b;
printf("%d\n", c);

return 0;
}

Následuje výstup tohoto programu:

13 
7
30
3
1

Zde stojí za zmínku, že když se zabýváte floaty a doubles, neměli byste používat operátor %. Také operátory + a -, které jsme zde použili, jsou binární operátory, což znamená, že vyžadují dva operandy (například 'a' a 'b' v našem případě). Existují také unární operátory + a -, které fungují na jediném operandu.

Zde je příklad unárního operátoru - v akci:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0;
c = -a;
printf("c = %d", c);
}

Zde je výstup:

c = -10

Mezi všemi dosud diskutovanými operátory sdílejí přednostně jedny + a - první místo, za nimi *, / a %, za nimiž následují binární + a -.

Vezměte prosím na vědomí, že existují i ​​další unární operátory, z nichž některé jsme již nepřímo diskutovali v našich předchozích tutoriálech. Zde je seznam:++, --, !, &a sizeof.

Již jsme diskutovali o operátorech inkrementace a dekrementace ++ a -- (ve formě prefixu i postfixu). ! NENÍ operátor, který neguje cokoliv, na co je aplikován. Pokud je například výsledek podmínky pravdivý, použije se ! převede jej na nepravdu a naopak.

Přesuneme se dál, &se používá k načtení adresy proměnné (jak již bylo vidět v případě argumentů funkce scanf()), zatímco operátor sizeof vám udává velikost operandu, který jí byl předán. Následující část kódu by vám měla poskytnout lepší představu o těchto operátorech:

#include <stdio.h>

int main()
{
int a = 10, b = 3, c =0, d =1, e=0, f=9;

printf("a = 10 and a++ = %d\n", a++);

printf("b = 3 and ++b = %d\n", ++b);

printf("c = 0 and c-- = %d\n", c--);

printf("d = 1 and --d = %d\n", --d);

if(!e)
{
printf("\n e is zero or FALSE and its address is: %u\n", &e);
printf("\n sizeof 'f' is: %u\n", sizeof(f));

}


return 0;

}

A tady je výstup:

a = 10 and a++ = 10 
b = 3 and ++b = 4
c = 0 and c-- = 0
d = 1 and --d = 0

e is zero or FALSE and its address is: 856178696

sizeof 'f' is: 4

Pokračujeme, pojďme se rychle podívat na relační a logické operátory. Následují relační operátory:

> >= < <= == !=

Zde je návod, jak je lze použít:

a > b
a >= b
a < b
a <= b
a == b
a != b

Ve výše uvedeném pořadí tyto operátory zkontrolují, zda je „a“ větší, větší nebo rovno, menší než, menší nebo rovno, rovno a ne rovno „b“. První čtyři operátory mají stejnou prioritu, která je vyšší než poslední dva. Všimněte si, že poslední dva operátory se také nazývají operátory rovnosti.

A konečně se dostáváme k logickým operátorům. V podstatě jsou dvě:&&a ||. Oba tyto operátory se většinou používají k vyhodnocení podmínek nebo výrazů. Například:

if (cond1 && cond2)
{

}

if (expr1 && expr2)
{

}

if (cond1 || cond2)
{

}

if (expr1 || expr2)
{

}

V případě prvních dvou příkazů if vstoupí provedení do bloku pouze v případě, že jsou splněny obě podmínky. Zatímco v případě posledních dvou příkazů if, provedení vstoupí do bloku, pokud je splněna některá z podmínek výrazu.

Pamatujte, že relační operátory mají nižší prioritu než aritmetické operátory a logické operátory mají nižší prioritu než relační operátory a operátory rovnosti. Mezi sebou má &&vyšší prioritu než ||.

Závěr

V tomto tutoriálu jsme probrali základy operátorů, jejich fungování a jejich prioritu. Doporučuje se, abyste vytvořili nějaké ukázkové programy v jazyce C, abyste si otestovali koncepty, o kterých se zde mluví. V případě jakýchkoli pochybností nebo dotazů nám dejte vědět v komentářích níže.


Linux
  1. Linux nice and renice Command Tutorial (7 příkladů)

  2. C Výukový program programování 4 - Proměnné a paměť

  3. C Výukový program programování Část 3 - Základy proměnných

  1. C Výukový program programování Část 5 - Znakové proměnné

  2. Výukový program programování v Linuxu C Část 10 - Variabilní rozsahy

  3. Výukový program programování v Linuxu C Část 9:Řetězce

  1. Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy

  2. Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy

  3. Výukový program programování Linux C, část 8 – Volání podle hodnoty versus volání podle ukazatele/adresy