Top Banner

of 16

c++ programiranje

Oct 12, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

// my first program in C++#include

int main(){std::cout >=, 6)), c++ samo procjenjuje da li je 5==5 istina , ako jeste nikada ne provjerava da li je (3>6)) istina, ovo se zove procjena uskog grla.

operatorshort-circuit(usko grlo)

&&Ako je izraz na lijevo strani laz(false),kombinovani rezultat je laz(false), desna strana se ne procjenjuje.

||.Ako je izraz na lijevo strani istina(true),kombinovani rezultat je istina(true), desna strana se ne procjenjuje.

Ovo je veoma bitno kada izraz na desnoj strani ima popratne efekte, kao sto je mjenjanje vrijednosti.

if ( (ib ? a : b // evaluates to whichever is greater, a or b.

Na primjer

a=2;b=7;c = (a>b) ? a : b; rezultat je 7, u ovom primjeru a je 2, b je 7, a izraz koji je procjenjen je bio neistina jer a nije > od b,tako da je prva vrijednost nakon ? Odbacena u korist druge vrijednost tj vrijednosti b.

Zarez operator(,)

Operator zarez se koristi da razdvoji dvije ili vise izraza gdje je jedan izraz ocekivan.Kada se set izraza mora procjeniti samo se desni izraz uzima.
Npr sljedeci kod:a = (b=3,b+2);


Bi prvo dodao vrijednost 3 varijabli b, a onda bi dodao b+2 varijabli a, tako da bi na kraju varijabla a imala 5 dodatu sebi, dok bi varijabla b imala vrijednost 3.

Bitwise operatori( &, |, ^, ~, )

Bitwise operatori modifikuju varijable sa obzirom na bit(dio memorije) koji predstavljaju vrijednost koju oni pohranjuju.operatorasm equivalentdescription

&ANDBitwise AND

|ORBitwise inclusive OR

^XORBitwise exclusive OR

~NOTUnary complement (bit inversion)

SHRShift bits right

Operator eksplicitnog rasporednjivanja uloga

Operatori eksplicitnog rasporednjivanja uloga omogucuju pretvaranje vrijednosti datog tipa u drugi tip(float u int itd).Postoji nekoliko nacina za ovo, a najjednostavniji je da se prije izraza koji ce se pretvarati stavi novi tip u zagrade tj ().

123int i;float f = 3.14;i = (int) f;


Predhodni kod pretvara float broj 3.14 u integralnu vrijednost 3. ostatak je izgubljen.Ovdje operator dodjele je int.Jos jedan nacin je da se izraz koji se pretvara stavi u zagrade a prije njega upise novi tip.i = int(f);


SizeofOvaj operator prihvata jedan parametar, koji moze biti tip ili varijabla, i vraca velicinu tog tipa ili objekta u bitovima(velicini te varijable, podatka kada se sprema u memoriju)

x = sizeof(char);


Ovdje je varijabli x dodjeljenja vrijednost 1, jer je char tip vrijednosti 1 bita.
Vrijednost koju sizeof vraca je sastavna vremensa konstanta i uvjek se odredjuje prije izvedbe programa.Postoji jos nekoliko operatora o kojima ce biti kasnije rijeci.

Prijoritet izvedbe operatora

Jedan izraz moze imati vise operatora npr x = 5 + 7 % 2;U izrazu iznad vrijednost 6 je dodata varijabli x zato sto % operator ima veci prijoritet nego + operator, i uvjek se izvodi prije, djelovi izraza se mogu staviti u zagrade da se prevazidje ovaj prijoritet, ili da se navede jasna namjera.Uocite razliku12x = 5 + (7 % 2); // x = 6 (same as without parenthesis)x = (5 + 7) % 2; // x = 0


Od najveceg do najmanjeg prijoriteta c++ operatori se odredjuju prema ovome redu:

LevelPrecedence groupOperatorDescriptionGrouping

1Scope::scope qualifierLeft-to-right

2Postfix (unary)++ --postfix increment / decrementLeft-to-right

()functional forms

[]subscript

. ->member access

3Prefix (unary)++ --prefix increment / decrementRight-to-left

~ !bitwise NOT / logical NOT

+ -unary prefix

& *reference / dereference

new deleteallocation / deallocation

sizeofparameter pack

(type)C-style type-casting

4Pointer-to-member.* ->*access pointerLeft-to-right

5Arithmetic: scaling* / %multiply, divide, moduloLeft-to-right

6Arithmetic: addition+ -addition, subtractionLeft-to-right

7Bitwise shift>shift left, shift rightLeft-to-right

8Relational< > =comparison operatorsLeft-to-right

9Equality== !=equality / inequalityLeft-to-right

10And&bitwise ANDLeft-to-right

11Exclusive or^bitwise XORLeft-to-right

12Inclusive or|bitwise ORLeft-to-right

13Conjunction&&logical ANDLeft-to-right

14Disjunction||logical ORLeft-to-right

15Assignment-level expressions= *= /= %= += -=
>>=