C - Zmienne
Zmienna to nic innego jak nazwa obszaru pamięci, którym
nasze programy mogą manipulować. Każda zmienna w C ma określony typ, który
określa rozmiar i układ pamięci zmiennej; zakres wartości, które mogą być
przechowywane w tej pamięci; oraz zestaw operacji, które można zastosować
do zmiennej.
Nazwa zmiennej może składać się z liter, cyfr i znaku
podkreślenia. Musi zaczynać się od litery lub podkreślenia. Duże i
małe litery są rozróżniane, ponieważ w C rozróżniana jest wielkość
liter. W oparciu o podstawowe typy wyjaśnione w poprzednim rozdziale, będą
następujące podstawowe typy zmiennych -
L.p.
|
Typ i opis
|
1
|
char
Zazwyczaj pojedynczy oktet (jeden bajt). Jest
to typ całkowity.
|
2
|
int
Najbardziej naturalny rozmiar liczby całkowitej dla
maszyny.
|
3
|
float
Wartość zmiennoprzecinkowa o pojedynczej precyzji.
|
4
|
double
Wartość zmiennoprzecinkowa o podwójnej precyzji.
|
5
|
void
Reprezentuje brak typu.
|
Język programowania C pozwala również definiować różne
inne typy zmiennych, które omówimy w kolejnych rozdziałach, takie jak Wyliczeniowe,
Wskaźnik, Tablica, Struktura, Unia itp. W tym rozdziale przyjrzyjmy się tylko
podstawowym typom zmiennych.
Definicja zmiennej w C
Definicja zmiennej informuje kompilator, gdzie i ile
pamięci należy utworzyć dla zmiennej. Definicja zmiennej określa typ
danych i zawiera listę jednej lub więcej zmiennych tego typu w następujący
sposób:
typ lista_zmiennych;
Tutaj typ musi być poprawnym typem
danych C, w tym char, w_char, int, float, double, bool lub dowolnym obiektem
zdefiniowanym przez użytkownika; i lista_zmiennych może
składać się z jednego lub większej liczby identyfikatorów nazwami oddzielonych
przecinkami. Niektóre ważne deklaracje są tutaj pokazane -
int i, j, k;
char c, ch;
float f, sprzedaz;
double d;
Linia int i, j, k; deklaruje i
definiuje zmienne i, j i k; które instruują kompilator do utworzenia
zmiennych o nazwach i, j i k typu int.
Zmienne mogą być inicjowane (przypisane wartości
początkowe) w deklaracji. Inicjator składa się ze znaku równości, po
którym następuje stałe wyrażenie w następujący sposób:
typ nazwa_zmiennej = wartość;
Niektóre przykłady to -
extern int d = 3, f = 5;
// deklaracja d i f.
int d = 3, f = 5; // definicja i inicjowanie d i f.
byte z = 22; // definicja i inicjuje z.
char x = 'x'; // zmienna x ma wartość 'x'..
Definicja bez inicjalizacji: zmienne o statycznym
czasie przechowywania są domyślnie inicjalizowane z wartością NULL (wszystkie
bajty mają wartość 0); wartość początkowa wszystkich pozostałych zmiennych
jest niezdefiniowana.
Deklaracja zmiennej w C
Deklaracja zmiennych zapewnia kompilatorowi, że
istnieje zmienna o podanym typie i nazwie, dzięki czemu kompilator może
przystąpić do dalszej kompilacji bez konieczności podawania szczegółowych
informacji na temat zmiennej. Definicja zmiennej ma znaczenie tylko
podczas kompilacji, kompilator potrzebuje rzeczywistej definicji zmiennej w
momencie łączenia programu.
Deklaracja zmiennych jest przydatna, gdy używasz wielu
plików i definiujesz zmienną w jednym z plików, które będą dostępne w momencie
łączenia programu. Użyjesz słowa kluczowego extern do
zadeklarowania zmiennej w dowolnym miejscu. Chociaż można zadeklarować
zmienną wiele razy w programie C, można ją zdefiniować tylko raz w pliku,
funkcji lub bloku kodu.
Przykład
Wypróbuj poniższy przykład, w którym zmienne zostały
zadeklarowane poza główną funkcją, ale zostały zdefiniowane i zainicjowane w
głównej funkcji -
#include <stdio.h>
// Deklaracja zmiennych:
extern int a, b;
extern int c;
extern float f;
int
main () {
/* definicja
zmiennych: */
int a, b;
int c;
float f;
/* incjalizowanie
zmiennych */
a = 10;
b = 20;
c = a
+ b;
printf("warrtość
c : %d \n", c);
f = 70.0/3.0;
printf("wartość
f : %f \n", f);
return 0;
}
Gdy powyższy kod zostanie skompilowany i wykonany, to
wygeneruje następujący wynik:
wartość c : 30
wartość f : 23.333334
Ta sama koncepcja ma zastosowanie do deklaracji
funkcji, w której podaje się nazwę funkcji w momencie jej deklaracji, a jej
faktyczną definicję można podać w dowolnym innym miejscu. Na przykład -
// Deklaracja funkcji
int func();
int main() {
// wywołanie funkcji
int i = func();
}
// definicja funkcji
int func() {
return 0;
}
WartościL i
wartościR w C
Istnieją dwa rodzaje wyrażeń w C -
·
lvalue - wyrażenia odnoszące się do lokalizacji pamięci
są nazywane wyrażeniami "lvalue". Wartość L może występować
zarówno po lewej, jak i po prawej stronie zlecenia.
·
rvalue - Termin rvalue odnosi się do wartości danych,
która jest przechowywana pod pewnym adresem w pamięci. Wartość r jest
wyrażeniem, które nie może mieć przypisanej wartości, co oznacza, że wartość r
może
pojawić się po prawej stronie, ale nie po lewej
stronie przypisania.
Zmienne są wartościami l, więc mogą pojawić się po
lewej stronie przypisania. Literały liczbowe są wartościami r, więc mogą
nie być przypisane i nie mogą pojawić się po lewej stronie. Spójrz na
następujące prawidłowe i nieprawidłowe stwierdzenia -
int g = 20; // prawidłowe
wyrażenie
10 = 20; // nieprawidłowe wyrażenie;
wygeneruje błąd podczas kompilacji
Brak komentarzy:
Prześlij komentarz