/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Beispielprogramm p05020301.c */ /* aus "C fuer Java-Programmierer", Hanser-Verlag */ /* */ /* Demonstriert wird die Verwendung des Adress- und des */ /* Dereferenzierungsoperators. */ /***************************************************************/ #include int main(void) { int *pt1, *pt2; int var1 = 100, var2 = 200; pt1 = &var1; /* pt1 zeigt nun auf var1 */ printf("Nach pt1=&var1 :\n\n"); printf(" *pt1 = %d, var1 = %d, var2 = %d\n\n", *pt1, var1, var2); *pt1 = *pt1 + 1; /* entspricht var1 = var1 + 1 */ printf("Nach *pt1=*pt1+1 :\n\n"); printf(" *pt1 = %d, var1 = %d, var2 = %d\n\n", *pt1, var1, var2); pt2 = pt1; /* pt2 zeigt nun auch auf var1 */ printf("Nach pt2=pt1 :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); pt1 = &var2; /* pt1 zeigt nun auf var2 */ printf("Nach pt1=&var2 :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); (*pt1)++; /* entspricht var2 = var2 + 1; */ printf("Nach (*pt1)++ :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); *pt2 = 150; /* entspricht var1 = 150 */ printf("Nach *pt2=150 :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); pt1 = &var1; /* pt1 zeigt nun wieder auf var1 */ printf("Nach pt1=&var1 :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); pt2 = &var2; /* pt2 zeigt nun auf var2 */ printf("Nach pt2=&var2 :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); *pt2 = *pt1; /* entspricht var2 = var1; */ printf("Nach *pt2=*pt1 :\n\n"); printf(" *pt1 = %d, *pt2 = %d, var1 = %d, var2 = %d\n\n", *pt1, *pt2, var1, var2); return 0; }