C

Passing by pointer

Në shqip: Kalimi me pointer

ShpjegimiSQ

C-ja i kalon gjithmonë parametrat si kopje. Që një funksion ta ndryshojë një variabël të jashtme, i jep adresën e saj (&x) dhe funksioni punon me *. Shembulli klasik është funksioni swap që ndërron dy numra.

EnglishEN

C always passes parameters as copies. For a function to change an outside variable, you give it the variable's address (&x) and the function works through *. The classic example is a swap function that exchanges two numbers.

Si ta mendosh

Si t'i japësh dikujt çelësat e shtëpisë në vend të një fotoje të saj: me foton s'mund të ndryshojë asgjë, me çelësat po.

Lexoje në anglisht

Like giving someone your house keys instead of a photo of it: with the photo they can't change anything, with the keys they can.

Shembull kodic

void nderro(int *a, int *b) {
    int tmp = *a; *a = *b; *b = tmp;
}
int x = 1, y = 2;
nderro(&x, &y);   // x = 2, y = 1

Terma të lidhur