Witam wszystkich, to mój pierwszy problem ucząc się programowania, jak widać zaczynam od języka C i jedno z moich zadań to zrozumienie tego małego i banalnego programu z książki:
#include <stdio.h>
void podw(int tab[], int rozmiar);
int main(void)
{
static int smieci[3][4] = {
{2,4,5,8}
{3,5,6,9}
{12,10,8,6}
};
int i, j;
podw(smieci[0], 3*4);
for (i=0; i<3; i++)
{
for (j=0; j<4; j++)
printf("%5d", smieci[i][j]);
putchar('\n');
}
return 0;
}
void podw(int tab[], int rozmiar)
{
int i;
for (i=0; i<rozmiar; i++)
tab[i] *= 2;
}
Rozumiem, że do funkcji podw zostaje przekazany adres elementu smieci[0][0], nie rozumiem czemu w ostatniej instrukcji funkcji podw mnożymy WSKAŹNIKI a nie elementy tablicy przez 2 i czemu mnożymy tylko adresy od i do rozmiar czyli smieci[0][0], smieci[1][0], smieci[2][0] i smieci[3][0]? Jakim cudem mam zrozumieć, że chodzi tu o elementy (nie wskaźniki) smieci [0][0], smieci[0][1], smieci[0][2] oraz smieci [0][3]?
Jeżeli problem jest zbyt banalny i na forum nikt nie odpowiada na takie banały (a spotkałem takie forum już) to przepraszam i proszę usunąć ten temat.