Męczy mnie pewna kwestia. Przykładowo, jeżeli tworzę zmienną a i wskaźnik wskazujący na tą zmienną, to jeżeli chcę coś przypisać do tej zmiennej odwołuje się do jej wartości a nie adresu. np:
#include <cstdio>
int main()
{
int a, *wsk = &a;
*wsk = 4;
printf("%d", a);
return 0;
}
Natomiast, jeżeli używam funkcji scanf, żeby przypisać do zmiennej jakąś wartość pobraną z klawiatury to jako drugi argument muszę już podać adres, a nie wartość! np:
#include <cstdio>
int main()
{
int a;
scanf("%d", &a);
return 0;
}
Rozumiem, że ta funkcja dodaje operator gwiazdki, ale jak dla mnie jest to szalenie nieintuicyjne. Jeżeli najpierw przyjmują konwencje, że aby zmodyfikować zmienną należy odwołać się do jej wartości a następnie każą podawać adres zmiennej w funkcji odpowiadającej za przypisanie danych z klawiatury do zmiennej to jest troszke nie na miejscu. Co o tym myślicie ?