c++, wyklad c2

background image

C/C++

nazwy,

słowa kluczowe,

zmienne,

typy proste,

stałe,

operatory,

wyrażenia,

instrukcja przypisania.

background image

C/C++ -

nazwy

, słowa kluczowe, zmienne, typy proste,

stałe, operatory, wyrażenia, instrukcja przypisania.

Nazwa

Nazwa inaczej identyfikator jest oznaczeniem zmiennej, funkcji, etykiety

(innych obiektów zdefiniowanych przez użytkownika).

Zasady nadawania nazw:

1.

W języku C nazwa może składać się z: liter, cyfr i znaku podkreślenia,
przy czym nie może zaczynać się od cyfry. Rozróżnianych jest
pierwszych 31 znaków. W C++ nie ma ograniczeń na długość.

2.

W języku C/C++ rozróżniane są małe i wielkie litery.

3.

Nazwa nie może być identyczna ze słowem kluczowym (słowa kluczowe
stanowią alfabet języka programowania (w C nie może także być
identyczna z nazwą funkcji własnej użytkownika lub znajdującej się w
bibliotece).

background image

Słowa kluczowe

Słowa kluczowe są ciągami znaków których znaczenie w języku jest dokładnie

określone i nie wolno ich wykorzystywać w charakterze nazw.

Język C

auto, break, case, char, const, continue, default, do, double, else,
enum, extern, float, for, goto, if, int, long, register, return, short,
signed, sizeof, static, struct, switch, typedef, union, unsigned, void,
volatile, while.

(32)

Język C++ (dodatkowo)

asm, bool, catch, class, const_cast, delete, dynamic_cast, explicit,
false, friend, inline, mutable, namespace, new, operator, private,
protected, public, reinterpret_cast, static_cast, template, this, throw,
true, try, typeid, typename, using, virtual, wchar_t.

(30)

C/C++ - nazwy,

słowa kluczowe

, zmienne, typy proste,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Zmienne

Zmienną nazywamy komórkę (lub komórki) pamięci mogącą przechowywać

daną określonego typu. Zmienna posiada nazwę. Nazwa i typ zmiennej
określane są w procesie deklaracji zmiennej.

Nazwy zmiennym nadaje się zgodnie z ogólnymi zasadami tworzenia nazw.
Typ zmiennej określa, jaki rodzaj danych w zmiennej może być

przechowywany (liczby całkowite, liczby rzeczywiste, znaki, wartości
logiczne, macierze, struktury określone przez użytkownika). Typy danych
można podzielić na typy proste i złożone.

Do zmiennej można zapisywać dane oraz można z niej dane odczytywać.
Zmienne dzieli się na lokalne – deklarowane wewnątrz funkcji, oraz globalne

– deklarowane poza funkcjami.

W procesie deklaracji zmiennej określa się także tzw. specyfikator klasy

pamięci.

C/C++ - nazwy, słowa kluczowe,

zmienne

, typy proste,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Zmienne c.d.

Przykład deklaracji zmiennej

register int liczba_calkowita;

specyfikator klasy

pamięci

nazwa typu

nazwa zmiennej

W powyższym przykładzie została zadeklarowana zmienna o nazwie
liczba_calkowita, typu całkowitego (int) i o ile jest to możliwe, to będzie
zapamiętana w rejestrze procesora (specyfikator register). Jeżeli w czasie
deklaracji zmiennej nie zostanie określony specyfikator klasy pamięci to
jest on ustalany domyślnie w zależności od miejsca deklaracji zmiennej.

C/C++ - nazwy, słowa kluczowe,

zmienne

, typy proste,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Klasy pamięci

register - jest wykorzystywany do deklaracji zmiennych do których
dostęp powinien być szybki. O ile jest to możliwe to kompilator
zapamiętuje te zmienne w rejestrze. Z klasą register powinny być
deklarowane zmienne do których następują częste odwołania. Należy
również pamiętać, że nie wszystkie zmienne mogą być zapamiętane
w rejestrach ze względu na ograniczoną ich liczbę.

C/C++ - nazwy, słowa kluczowe,

zmienne

, typy proste,

stałe, operatory, wyrażenia, instrukcja przypisania.

W języku C++ występują 4 klasy pamięci:

register
extern
static
auto

Specyfikator klasy pamięci w linii deklaracji zmiennej informuje
kompilator o tym, w jaki sposób ma być zapamiętana zmienna

.

background image

Klasy pamięci

extern - jest wykorzystywany do oznaczenia zmiennej zadeklarowanej
na zewnątrz pliku źródłowego (lub funkcji). Jest to informacja dla
konsolidatora którego zadaniem jest połączenie osobno skompilowanych
plików. Użycie specyfikatora extern skutkuje tym, że kompilator nie
rezerwuje pamięci dla tak zadeklarowanej zmiennej.

C/C++ - nazwy, słowa kluczowe,

zmienne

, typy proste,

stałe, operatory, wyrażenia, instrukcja przypisania.

static – zastosowanie tego specyfikatora do zmiennej lokalnej powoduje
przypisanie jej trwałego miejsca w pamięci (jak zmiennej globalnej).
Statyczna zmienna lokalna zachowuje więc swoją wartość pomiędzy
kolejnymi wywołaniami funkcji.

auto – zmienna jest usuwana z pamięci w chwili zakończenia bloku
w którym została zadeklarowana. Jest to domyślna klasa dla zmiennych
deklarowanych w funkcjach (blokach).

background image

Typy danych – typy proste

W języku C++ wyróżniamy 7 podstawowych (atomowych),

wbudowanych typów. Są to:

char –

typ znakowy

int –

typ całkowity

float –

typ zmiennoprzecinkowy

double –

typ zmiennoprzecinkowy podwójnej precyzji

void –

typ bez wartości

bool –

typ logiczny

wchar_t –

typ szerokich znaków

C++

C

W C++, dzięki zaimplementowaniu klasy string możliwe jest używanie

typu łańcuchowego. Nie jest to jednak typ wbudowany.

C/C++ - nazwy, słowa kluczowe, zmienne,

typy proste

,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Typy danych – typy proste: void i bool

Typ void jest wykorzystywany w 3 przypadkach:

- deklarowanie funkcji nie zwracających wartości,

- deklarowanie funkcji nie pobierających żadnych argumentów,

- tworzenie wskaźników ogólnych.

Typ logiczny bool służy do przechowywania wartości logicznych

true

lub

false

. Wartość

false

– fałszu odpowiada liczbie 0, a wartość

true

prawdy, liczbie całkowitej różnej od zera.

C/C++ - nazwy, słowa kluczowe, zmienne,

typy proste

,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Typy danych – typy proste (atomowe), przykłady deklaracji

background image

Typy danych – typy proste – modyfikatory typów

W języku C++ typy: char, int, double mogą zostać zmodyfikowane przy

pomocy tzw. modyfikatorów typów. Występuje 4 modyfikatory:

signed (ze znakiem)
unsigned (bez znaku)
long (format długi)
short (format krótki)

Postać deklaracji z wykorzystaniem modyfikatora typu:

modyfikator typu

nazwa typu

nazwa zmiennej

unsigned char znak;

C/C++ - nazwy, słowa kluczowe, zmienne,

typy proste

,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Typy danych – typy proste – modyfikatory typów

W uzasadnionych przypadkach można użyć modyfikatora w stosunku do

już zmodyfikowanego typu. Modyfikatory należy interpretować
parami : (signed, unsigned) i (long, short) i trzymać się zasady, że
w jednej deklaracji nie występują dwa modyfikatory z tej samej pary.

Postać deklaracji z wykorzystaniem modyfikatora typu zmodyfikowanego

unsigned short int krotka_liczba_bez_znaku;

modyfikator typu

nazwa typu

nazwa zmiennej

C/C++ - nazwy, słowa kluczowe, zmienne,

typy proste

,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Typy danych – użyteczne połączenia typów prostych z modyfikatorami

w systemach 32 bitowych ich charakterystyka

C/C++ - nazwy, słowa kluczowe, zmienne,

typy proste

,

stałe, operatory, wyrażenia, instrukcja przypisania.

3,4 *10

-4932

do 1,1*10

+4932

10

long double

1,7*10

-308

do 1,7*10

308

8

double

3,4*10

-38

do 3,4*10

38

4

float

0 do 65535

2

unsigned short int

-32 768 do 32767

2

short int

0 do 4 294 967 295

4

unsigned int

-2 147 483 648 do 2 147 483 647

4

int

0 do 255

1

unsigned char

-128 do 127

1

char

Zakres

Liczba bajtów

Typ

przykład

background image

Typy danych – typy proste – modyfikatory dostępu do zmiennych

W języku C++ występują dwa modyfikatory typu określające dostęp do

zmiennej. Są to modyfikatory:

const

volatile

Zmiennych zadeklarowanych z modyfikatorem const nie można zmieniać w

trakcie działania programu. Nadanie wartości odbywa się w linii deklaracji

Przykład deklaracji:

const int stala=7;

Modyfikator volatile jest wykorzystywany w celu poinformowania kompilatora

o tym, że wartość zmiennej może ulec w sposób nieokreślony w programie.

Modyfikatory const i volatile można stosować łącznie.

C/C++ - nazwy, słowa kluczowe, zmienne,

typy proste

,

stałe, operatory, wyrażenia, instrukcja przypisania.

background image

Stałe (literały)

W języku C++ stałe reprezentują ustalone wartości, które nie mogą być

zmieniane w trakcie działania programu. Stałe mogą być dowolnego
typu prostego oraz dodatkowo, stała może być łańcuchem znaków
(ciągiem znaków umieszczonych w cudzysłowie).

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe

, operatory, wyrażenia, instrukcja przypisania.

”łańcuch znaków”

false true

bool

134.45 5.32

double

134.45F 5.32e -4F

float

985U 30000U

unsigned int

3 67 -567

int

‘s’ ‘6’ ‘\n’

char

Przykłady stałych

Typ

background image

Stałe - wybrane znaki z ukośnikiem wstecznym

(sterujące, specjalne)

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe

, operatory, wyrażenia, instrukcja przypisania.

\b

znak cofania o jedno pole znakowe

\n

znak przejścia do nowego wiersza

\r

znak powrotu karetki

\0

znak zerowy (ang. Null)

\\

ukośnik wsteczny

\a

sygnał dźwiękowy

\”

cudzysłów

\’

apostrof

background image

Operatory

W języku C++ występują następujące grupy operatorów:

arytmetyczne,
relacji,
logiczne,
bitowe,
specjalne
skróty

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

background image

Operatory arytmetyczne

+

dodawanie,

-

odejmowanie,

*

mnożenie,

/

dzielenie,

%

dzielenie modulo (reszta z dzielenia),

++ inkrementacja (zwiększenie wartości o 1),

--

dekrementacja (zmniejszenie wartości o 1)
operatory inkrementacji i dekrementacji mogą być używane
przedrostkowo lub przyrostkowo, w instrukcjach przypisania nie
jest obojętne z jakiej postaci się korzysta.

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

priorytety (od najwyższego):

+

-

++

--

(jednoargumentowe)

* / %

+

-

(dwuargumentowe)

Uwaga: dzielenie operandów typu int daje wynik typu int (następuje odrzucenie

ułamka)

background image

Operatory c.d.

Operatory relacji

>

większy

<

mniejszy

>=

większy równy

<=

mniejszy równy

==

równy

!=

różny

Operatory logiczne

&&

iloczyn logiczny, AND

||

suma logiczna, OR

!

negacja logiczna, NOT

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

Priorytety (od najwyższego) ,operatory

relacji i logiczne łącznie :

!

> >= < <=

== !=

&&

||

background image

Operatory bitowe

&

iloczyn bitowy, AND

|

suma bitowa, OR

^

różnica symetryczna, XOR (1 kiedy różne)

~

negacja bitowa, NOT

>>

przesunięcie w prawo

<<

przesunięcie w lewo

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

background image

Operatory bitowe c.d.

Operatory bitowe stosowane są w języku C do zmiennych typu char i int.

Zastosowanie typowe:
&

zerowanie bitów

|

ustawianie bitów (na 1)

<< szybkie mnożenie 2

liczba_pozycji_przesunięcia

>> szybkie dzielenie (analogicznie)

Operacje przesunięcia <<, >> nie są operacjami przesunięcia cyklicznego
Usunięte bity są tracone a wchodzące posiadają wartość 0.
Wyjątek stanowi przesunięcie w prawo liczby ujemnej, kiedy
uzupełnienie odbywa się jedynkami.

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

background image

Operatory - operatory specjalne

=

przypisanie (prawej strony do lewej)

()

zwiększenie priorytetu

[]

dostęp do elementu tablicy

.

dostęp do pola struktury, unii, zmiennej lub metody obiektu,

-

> dostęp do pól struktury przez wskaźnik

&

udostępnienie adresu zmiennej

*

udostępnienie wartości spod adresu

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

background image

Operatory specjalne c.d.

,

wiązanie wyrażeń np.

x=(y=4,y+1);

oznacza, że zanim zostanie wykonana instrukcja

x=y+1,

zostanie wykonana instrukcja

y=4;

sizeof

udostępnienie długości zmiennej lub specyfikatora typu (w
bajtach) np.

float x;

dlugosc1 = sizeof x;

dlugosc2 = sizeof(int); // tu koniecznie

// w nawiasach

(typ)

rzutowanie typów (określenie typu wartości wyrażenia)

int

x=5,y=2;

float z;

z=(float)x/y; //je

ś

li wynik ma by

ć

rzeczywisty!

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

przykład

background image

Operatory specjalne c.d.

?:

wyrażenie warunkowe, postaci

z=x>y?x:y;

(jeżeli

x

jest większe od

y

to

z

przypisz wartość

x

w przeciwnym

wypadku

z

przypisz wartość

y

).

Operatory złożone (skróty)

+= *= /= %= <<= >>= &= ^= |=

Operatory powyższe stosuje się w celu skrócenia zapisu operacji i tak np.

x+=2;

// oznacza wykonanie operacji

x=x+2;

x%=2;

// oznacza wykonanie operacji

x=x%2;

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe,

operatory

, wyrażenia, instrukcja przypisania.

background image

Operatory - priorytety

najwyższy

() []

-

> .

! ~ +

-

++

-- & *

sizeof (typ)

* / %

+

-

(dwuargumentowe)

<< >>

< <= > >=

== !=

&

^

|

&&

||

?:

= *= /= %= += -= &= ^= |= <<= >>=

najniższy

,

x=4>>2/3;

x=????

x=8>>1+1;

x=???

background image

Wyrażenia

Wyrażenie jest kombinacją stałych, zmiennych, wywołań funkcji oraz

operatorów. Wyrażenia są konstruowane zgodnie z zasadami algebry.

Przykład

c/(i+f)*d-sin(x)+0.5

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe, operatory,

wyrażenia

, instrukcja przypisania.

zmienne

funkcja

stała

background image

Wyrażenia c.d.

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe, operatory,

wyrażenia

, instrukcja przypisania.

Podczas obliczania wartości wyrażeń, w trakcie wykonywania działań,

następuje automatyczna konwersja typów jednego z operandów tak, aby

były jednakowego typu – bez utraty informacji.

char ch;int i; float f;double d;

ch/i + f*d – f+i;

int

double

float

double

double

background image

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe, operatory, wyrażenia,

instrukcja przypisania

.

Instrukcja przypisania

W instrukcji przypisania następuje przypisanie wartości wyrażenia
zmiennej postaci:

wynik=c/(i+f)*d-sin(x)+0.5;

Możliwe jest przypisanie wielokrotne postaci:

a=b=c=0;

wykorzystywane np. do zerowania zmiennych względnie ich
inicjalizacji tą samą wartością.

background image

C/C++ - nazwy, słowa kluczowe, zmienne, typy proste,

stałe, operatory, wyrażenia,

instrukcja przypisania

.

Instrukcja przypisania –

skutki automatycznej konwersji typów

3 bajty (od najstarszego)

int (32 bity)

char

2 bajty (od najstarszego)

int (32 bity)

short int

zaokrąglenie (mniejsza precyzja)

long double

double

zaokrąglenie (mniejsza precyzja)

double

float

starszy bajt

short int

char

wynik jest ujemny, jeśli wartość >127

unsigned char

signed char

Utrata informacji

Typ wyrażenia

Typ docelowy

przykład


Wyszukiwarka

Podobne podstrony:
Złamania C2, Wykłady
Test C2 Ochrona Środowiska, iś pw, semestr I, Ochrona Środowiska, zaliczenie wykładów
Napęd Elektryczny wykład
wykład5
Psychologia wykład 1 Stres i radzenie sobie z nim zjazd B
Wykład 04
geriatria p pokarmowy wyklad materialy
ostre stany w alergologii wyklad 2003
WYKŁAD VII
Wykład 1, WPŁYW ŻYWIENIA NA ZDROWIE W RÓŻNYCH ETAPACH ŻYCIA CZŁOWIEKA
Zaburzenia nerwicowe wyklad
Szkol Wykład do Or
Strategie marketingowe prezentacje wykład
Wykład 6 2009 Użytkowanie obiektu
wyklad2
wykład 3

więcej podobnych podstron