Witam, mam kolejne pytanie dotyczace C - tym razem ucze sie o wskaznikach. Z tego co rozumiem - int *p jest wskaznikiem na typ int, poczatkowo niezainicjowanym. Czyli "p" zawiera jakis losowy adres w pamieci. Zeby przypisac inny adres, trzeba uzyc & - np. p = &a[0]. Wtedy "p" wskazuje na element zerowy tablicy "a". Czyli "p" to adres, a wartosc na ktora "p" wskazuje mozna uzyskac poprzez "*p" - printf("%d", *p);
W ponizszym przykladzie wczytywane sa liczby do tablicy, poprzez wskazniki. Dziwi mnie "scanf("%d", p)" - czy nie oznacza to, ze liczba ktora uzytkownik poda zostanie zapisana jako adres na ktory "p" bedzie wskazywac? Czy nie powinno sie wczytywac tak "scanf("%d", *p);"?
#include <stdio.h>
#define N 10
int main(void) {
int a[N], *p;
printf("enter %d numbers: ", N);
for (p = a; p < a + N; p++)
scanf("%d", p);
printf("in reverse order: ");
for (p = a + N - 1; p >= a; p--)
printf(" %d", *p);
printf("\n");
return 0
}