Jak zrozumieć C?

Wątek przeniesiony 2017-09-21 09:00 z C# i .NET przez aurel.

FR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
0

Cześć. Studiuję akutalnie Mechanikę i budowę maszyn, jednak zarobki nie nastrajają mnie pozytywnie dlatego myślę o nauce c#. Kiedyś robiłem do tego podejście, jednak było to w młodzieńczych latach i szybko mi się znudziło. Podchodzę teraz drugi raz do programowania i mam nadzieję, że pomożecie mi zrozumieć w mniejszym lub większym stopniu ten język. Aktaulnie uczę się z książki Język ANSI C Brian, Kernighan, Dennis. Jak łatwo zrozumieć poniższy program? Nie za bardzo ogarniam int power (int m, int n);. Zmienna jest to wykładnik i zamienia się on w 10? Dlaczego zmienna m nie jest nigdzie opisana? Ogólnie to byłoby miło gdyby ktoś napisał co, jak i dlaczego :)

Kopiuj
#include <stdio.h>

int power (int m, int n);

main()
{
	int i;
	for(i=0; i<=10; ++i)
		printf ("%2d %4d %6d\n",i, power(2,i), power(-3,i));
	return 0;
}

int power(int base, int n)
{
	int i, p;
	p=1;
	for(i=1; i<=n; ++i)
		p=p*base;
	return p;
}*
grzesiek51114
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2442
3
  1. To nie C# tylko czyste C;
  2. int power (int m, int n); to tylko prototyp funkcji, który równie dobrze mógłby być napisany tak: int power (int, int);;
  3. Nawiązując do punktu drugiego: definicja tej funkcji to int power(int base, int n). Jeżeli funkcje definiujemy pod main'em to nad nim musi być widoczny jej prototyp, no bo tych funkcji w mainie później używamy - kolokwialnie mówiąc. Kompilator musi wiedzieć czego używa;
  4. Formatuj jakoś ten kod.
carlosmay
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pabianice
1

https://4programmers.net/C/Przekazywanie_parametru_przez_warto%C5%9B%C4%87_i_referencj%C4%99" powinien pomóc zrozumieć problem.
ANSI C i C# to zupełnie inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.