<< Chapter < Page Chapter >> Page >

Програмскиот јазик С користи различни аритметички оператори и различни типови на операнди така што операторот ќе одбере каков вид на операција ќе изведе. При тоа комапјлерот се грижи само за типот на операндите. При изведувањето на операцијата не се зема во предвид типот на променливата на која и се доделува резултатот.

Оператори за инкрементирање и декрементирање

Операторот за инкрементирање (++) го зголемува операндот за еден, додека операторот за декрементирање (--) го намалува операндот за еден. Операндот кој се користи со овие оператори мора да биде една променлива и затоа овие оператори се нарекуваат унарни.

Така, ако на целобројната променлива i и е доделена вредноста 5, изразот ++i ја зголемува вредноста на i за еден, со што i станува 6, додека изразот --i ја намалува вредноста на i за еден и i станува 4.

Операторите за инкрементирање и декрементирање може да се користат на два различни начини, зависно од тоа дали операторот е запишан пред или по операндот.

  1. Ако операторот е пред операндот (++i), тогаш операндот ќе ја промени својата вредност пред да се искористи во понатамошниот тек на наредбата.
  2. Ако пак операторот е после операндот (i++), тогаш вредноста на операндот се менува откако истата е искористена.
i = 1; printf(“ i = %d\n”, i);//i=1printf(” i = %d\n”, ++i);//i=2 printf(” i = %d\n”, i);//i=2printf(” i = %d\n”, i++);//i=2 printf(” i = %d\n”, i);//i=3

Релациони и логички оператори

Треба да се води сметка дека нема boolean (булов) тип на податок во С, наместо него се користи целобројниот int тип. При тоа, вредноста 0 е неточно, додека секоја друга вредност е точно.

Резултатот на логичката И операција (оператор&&) ќе биде точно само ако двата операнди се точни, додека резултатот на логичката операција ИЛИ (оператор ||) ќе биде точно ако било кој од операндите или, пак, двата операнди се точни. Со други зборови, резултатот од логичката операција ИЛИ ќе биде неточно, само ако двата операнди се неточни. Резултатот од логичката операција НЕ (оператор !) ќе биде спротивното од операндот, односно точно ако операндот има вредност неточно, и неточно ако операндот има вредност точно.

При тоа треба да се води сметка дека резултатот на секој релационен логички израз во С е 0 за неточно или 1 за точно ( и покрај тоа што секоја ненулева вредност ја третира како точно).

i = 5; j = 0; k = -1; s = i&&k || j; // s = 1

поради истиот приоритет прво се изведува И операцијата, а потоа ИЛИ.

# include<stdio.h>main() {float f = 5.5; int i = 7;char c = ‘w’; printf("%d\t",(i>=6)&&(c=='w')); // 1 printf("%d\t",(i>=6)&&(c==119)); // 1 printf("%d\t",(f<11)&&(i>100)); // 0 printf("%d\n",(c != 'p')||((i+f)<=10)); // 1 // !!! da se upotrebuvaat zagradiprintf("%d %d\n",(!i == 7), (!(i == 7))); // 0 0 // da vnimava da ne se koristi = namesto ==printf("%d %d\n",(!i == 0), (!(i = 0))); // 0 1 }

Треба да се води сметка дека извршувањето на релационите логички изрази е од лево на десно и дека истата не се изведува докрај доколку нема потреба за тоа.

Оператор за доделување (=)

Доделувањето на вредност се врши со помош на = операторот. При тоа вредноста од левата страна на = се доделува на променливата од десната страна на =. Употребата на овој оператор е многу флексибилна. Доделената вредност е секогаш достапна за повторна употреба при доделување и при тоа операцијата се изведува секогаш од десно на лево, а има низок приоритет:

int i, j, k, l, m, n; i = j = k = l = m = n = 22;printf(”%i\n”, j=93);

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Вовед во програмирање. OpenStax CNX. Oct 28, 2013 Download for free at http://cnx.org/content/col11379/1.12
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Вовед во програмирање' conversation and receive update notifications?

Ask