هنوز مفاهیم پایهای پوینتر رو شما خوب درک نکردین و به نظرم نباید سراغ type casting تو پوینترها برید. دقیقا به همین دلیله که میگید چند تا کتاب رو خوندین اما هنوز مفاهیم پایه C رو درک نکردید چون هیچ کدومش رو نمیخونید.
خب بگذریم. خیلی خلاصه بخوام بگم، تو قطعه کد زیر میایم b که یک
double هست رو cast میکنیم به یک
int و اونو میذاریم داخل a که یه int ـه:
int a;
double b;
b = 40.75;
a = (int)b; // cast [double] to [int]
دقیقا با همین منطق توی کد زیر، q که نوعش
double * (اشارهگر double) هست رو cast میکنیم به یک
int * (اشارهگر int) و اونو میذاریم داخل p که یک int * ـه: (مثال زیر صرفا جنبه آموزشی داره)
int *p:
double *q;
q = &b;
p = (int *)q; // cast [double *] to [int *]
این مورد ارتباطی به موضوع نداره اما با توجه به لینکی که قرار دادین توصیه میکنم افزونه
Don't track me Google رو روی مرورگرتون نصب کنید.