czwartek, 26 kwietnia 2018

Język C - Zmienne

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

Poprzednia strona                                                          Następna strona


Brak komentarzy:

Prześlij komentarz