Mi a magyarazat ehhez a kis progihoz?
C nyelv
Valki fuzne egy kis magyarazatot ehhez a pl. programhoz. A pointnereket magyaraza,valmi olyannak kapcsolatos hogy globalis es lokalis valtozok ....
Azt kell ennel a peldanal megerteni,hogy miert nem csereli ki az elso swap1 funcio az i j míg a swap2 kicsereli.
#include<stdio.h>
void swap1(int a, int b)
{
int c;
c = a;
a = b;
b = c;
}
void swap2(int *pa, int *pb)
{
int c;
c = *pa;
*pa = *pb;
*pb = c;
}
main()
{
int i = 3, j = 5;
swap1(i,j);
printf("i = %d, j = %d\n",i,j);
swap2(&i,&j);
printf("i = %d, j = %d\n",i,j);
}
Lokális: csak az adott blockon bellül érhető el
Globális: az egész programból
A swap1 függvény paraméterül 2 int-et vár, függvény hívás helyén swap1(3,5) is lehetne.
A swap2 paramáterül 2 int változó memóriacímét várja paraméterül.
A swap1 a paraméterül a kapott int-ek értékéről másolatot készít a verembe és ezen másolatok értékét cseréli fel.
A swap2 a verembe 2 int-re mutató pointert hoz létre, a mutatók által mutatott memóriaterületen lévő int értékeken végzik el a cserét.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!