Portál AbcLinuxu, 2. prosince 2025 03:29
6 12 3 12
#include <stdio.h>
#include <stdlib.h>
void funkce(int *a, int b)
{
// b = 17 / 2 = 8
int y = b;
// 7 + 8 = 15
*a += y;
// 15 + 8 = 23
b = *a + y;
printf("%d%5d\n", b, y);
// nema vyznam
y = b + *a;
}
int main(void)
{
int x = 17, y = 7;
funkce(&y, x/2);
// x = 17 protoze se predala fci pouze hodnota x, a fce si alokovala svoji lokalni promenou b
// y = 15 protoze se predal fci ukazatel, takze muze fce menit hodnotu y
printf("%d%5d", x, y);
}
BTW: Příště vkládej kód přímo na Ábíčko, ať z případné odpovědi a diskuze mají časem něco i ostatní, v době, kdy už Tvůj link nebude funkční.
Možná bude lepší, když vysvětlíte vy, proč si myslíte, že by měl výstup vypadat jinak, a my vám pak řekneme, kde je ve vaší úvaze chyba. A nebo si to rovnou odkrokujte v debuggeru…
P.S.: na rozumný coding style je lepší si zvykat hned od začátku
Já bych ještě doplnil, že vše potřebné je krásně vysvětleno v knize: Pavel Herout - Učebnice jazyka C . Takže další dotazy by jsem doporučil pokládat až po jejím přečtení a zpracování všech příkladů.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.