Portál AbcLinuxu, 8. května 2025 15:51
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.