Inne działy

 

 

Zasięg zmiennych

Zasięg zmiennych jest bardzo istotnym zagadnieniem, ponieważ możemy czasem próbować odwołać się do zmiennej, która w rzeczywistości w danym miejscu nie istnieje. Przykład poniżej pokazuje kod, który uświadamia istotne aspekty związane z zasięgiem zmiennych.

#include <stdio.h> 
int iloscCali = 10;
void drukujZmienna (void);
main () 
{
   int index = 5;
   printf("%d\n", index);
   printf("%d\n", iloscCali);
   drukujZmienna();
   {
      int numer = 50;
      printf("%d\n", numer);
   }
   printf("%d\n", numer); /* Nie zadziala */
}
void drukujZmienna (void)
{
   int id = 4;
   printf("%d\n", id);
   printf("%d\n", iloscCali);
}

Widać na powyższym listingu, są dwie funkcję: main oraz drukujZmienna. Zakres zmiennej lokalnej, czyli takiej, która utworzona jest w dowolnej funkcji obejmuje tylko tę funkcję. To znaczy zmienna id, która jest zadeklarowana w funkcji drukujZmienna dostępna jest tylko w tej funkcji. Z funkcji main nie można się do niej odwołać i odwrotnie, zmienna index dostępna jest tylko w głównej funkcji programu. Ciekawostką może być fakt, iż zmienna numer pomimo tego, że zadeklarowana jest w funkcji głównej, nie jest dostępna w każdym miejscu funkcji main.

Nawiasy klamrowe tworzą wydzielony blok, w którym utworzone zmienne dostępne są tylko pomiędzy klamrami (czyli w tym bloku). Dlatego też ostatnia instrukcja nie zadziała – kompilator zgłosi błąd, który mówi, że nie można używać zmiennej, jeśli się jej wcześniej nie zadeklaruje. Zmienna globalna iloscCali widziana jest w każdym miejscu, tzn można jej używać w każdej funkcji oraz musi być zdefiniowana dokładnie jeden raz.

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.