Nawiasy okrągłe () mają dwa zastosowania.
Po pierwsze, służą do grupowania wyrażeń, jak w matematyce.
int x = 4;
int y = 2 * (x + 3);
Po drugie, służą do rozróżnienia że identyfikator jest funkcją lub zmienną.
int x; // zmienna typu int
int x(); // funkcja, zwracająca int
Z funkcjami i nawiasami () wiąże się jeszcze sprawa argumentów - właśnie w nawiasach okrągłych podajemy argumenty dla funkcji, czy to przy wywołaniu, czy też przy samej deklaracji / definicji.
Nawiasy klamrowe służą do rozdzielania bloków kodu. Kod funkcji i deklaracji klas/struktur/enumów/unii/czegoś-o-czym-mogłem-zapomnieć musi być zawarty między klamrami {}. Kodu nie pisze się przecież "w powietrzu", każdy jego fragment musi "należeć" do jakiejś funkcji. :)