#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main()
{
/* �������� ���������� */
int a = 1;
float b = 2;
double c = 3;
/* ��������� */
int *p1 = &a;
float *p2 = &b;
double *p3 = &c;
void *p4 = NULL;
/* ������ ��������� ���������� � ������ ���������� ������ */
printf("a: int: start address %p extent %d\n",&a
,sizeof(a
)); printf("b: float: start address %p extent %d\n",&b
,sizeof(b
)); printf("c: double: start address %p extent %d\n\n",&c
,sizeof(c
)); /* ������ ���������� � ������ ���������� ������ */
printf("p1: pointer: start address %p extent %d\n",&p1
,sizeof(p1
)); printf("p2: pointer: start address %p extent %d\n",&p2
,sizeof(p2
)); printf("p3: pointer: start address %p extent %d\n\n",&p3
,sizeof(p3
)); printf("p4: pointer: start address %p extent %d\n\n",&p4
,sizeof(p4
)); /* ��������, �� ������� ��������� ��������� */
printf("p1: %p related value %d\n",p1
,*p1
); printf("p2: %p related value %f\n",p2
,*p2
); printf("p3: %p related value %lf\n\n",p3
,*p3
); /* ������������� ���������� � ���������� */
printf("a=%d\tb=%f\tc=%lf\n",a
,b
,c
); *p1 = 5;
*p2 = *p2 * *p1;
printf("a=%d\tb=%f\tc=%lf\n",a
,b
,c
); printf("*p1=%d\t*p2=%f\t*p3=%lf\n\n",*p1
,*p2
,*p3
); /* ������������ ���������� */
p1 = (int*)p2;
p3 = (double*)p2;
p4 = p2;
printf("p1=%p\tp2=%p\tp3=%p\tp4=%p\n",p1
,p2
,p3
,p4
); printf("*p1=%d\t*p2=%f\t*p3=%f\t*(float*)p4=%f\n\n",*p1
,*p2
,*p3
,*(float*)p4
); /* ��������� �������� ���������� */
p1++;
p3--;
printf("p1=%p\tp2=%p\tp3=%p\n",p1
,p2
,p3
); printf("*p1=%d\t\t*p2=%f\t*p3=%lf\n",*p1
,*p2
,*p3
); p1 -= 4;
p3 = (double*)&a - 1;
printf("p1=%p\tp2=%p\tp3=%p\n",p1
,p2
,p3
); printf("*p1=%d\t*p2=%f\t*p3=%lf\n",*p1
,*p2
,*p3
); return 0;
}
I2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPG1hdGguaD4KCmludCBtYWluKCkKewogICAgLyog77+977+977+977+977+977+977+977+9IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSAqLwogICAgaW50IGEgPSAxOwogICAgZmxvYXQgYiA9IDI7CiAgICBkb3VibGUgYyA9IDM7CiAgICAvKiDvv73vv73vv73vv73vv73vv73vv73vv73vv70gKi8KICAgIGludCAqcDEgPSAmYTsKICAgIGZsb2F0ICpwMiA9ICZiOwogICAgZG91YmxlICpwMyA9ICZjOwogICAgdm9pZCAqcDQgPSBOVUxMOwogICAgLyog77+977+977+977+977+977+9IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70g77+9IO+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70g77+977+977+977+977+977+9ICovCiAgICBwcmludGYoImE6ICAgICAgaW50OiBzdGFydCBhZGRyZXNzICVwIGV4dGVudCAlZFxuIiwmYSxzaXplb2YoYSkpOwogICAgcHJpbnRmKCJiOiAgICBmbG9hdDogc3RhcnQgYWRkcmVzcyAlcCBleHRlbnQgJWRcbiIsJmIsc2l6ZW9mKGIpKTsKICAgIHByaW50ZigiYzogICBkb3VibGU6IHN0YXJ0IGFkZHJlc3MgJXAgZXh0ZW50ICVkXG5cbiIsJmMsc2l6ZW9mKGMpKTsKICAgIC8qIO+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70g77+9IO+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70g77+977+977+977+977+977+9ICovCiAgICBwcmludGYoInAxOiBwb2ludGVyOiBzdGFydCBhZGRyZXNzICVwIGV4dGVudCAlZFxuIiwmcDEsc2l6ZW9mKHAxKSk7CiAgICBwcmludGYoInAyOiBwb2ludGVyOiBzdGFydCBhZGRyZXNzICVwIGV4dGVudCAlZFxuIiwmcDIsc2l6ZW9mKHAyKSk7CiAgICBwcmludGYoInAzOiBwb2ludGVyOiBzdGFydCBhZGRyZXNzICVwIGV4dGVudCAlZFxuXG4iLCZwMyxzaXplb2YocDMpKTsKICAgIHByaW50ZigicDQ6IHBvaW50ZXI6IHN0YXJ0IGFkZHJlc3MgJXAgZXh0ZW50ICVkXG5cbiIsJnA0LHNpemVvZihwNCkpOwogICAgLyog77+977+977+977+977+977+977+977+9LCDvv73vv70g77+977+977+977+977+977+977+9IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv70gKi8KICAgIHByaW50ZigicDE6ICVwIHJlbGF0ZWQgdmFsdWUgJWRcbiIscDEsKnAxKTsKICAgIHByaW50ZigicDI6ICVwIHJlbGF0ZWQgdmFsdWUgJWZcbiIscDIsKnAyKTsKICAgIHByaW50ZigicDM6ICVwIHJlbGF0ZWQgdmFsdWUgJWxmXG5cbiIscDMsKnAzKTsKICAgIC8qIO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70g77+9IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSAqLwogICAgcHJpbnRmKCJhPSVkXHRiPSVmXHRjPSVsZlxuIixhLGIsYyk7CiAgICAqcDEgPSA1OwogICAgKnAyID0gKnAyICogKnAxOwogICAgKnAzID0gc3FydCgqcDMpOwogICAgcHJpbnRmKCJhPSVkXHRiPSVmXHRjPSVsZlxuIixhLGIsYyk7CiAgICBwcmludGYoIipwMT0lZFx0KnAyPSVmXHQqcDM9JWxmXG5cbiIsKnAxLCpwMiwqcDMpOwogICAgLyog77+977+977+977+977+977+977+977+977+977+977+977+9IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSAqLwogICAgcDEgPSAoaW50KilwMjsKICAgIHAzID0gKGRvdWJsZSopcDI7CiAgICBwNCA9IHAyOwogICAgcHJpbnRmKCJwMT0lcFx0cDI9JXBcdHAzPSVwXHRwND0lcFxuIixwMSxwMixwMyxwNCk7CiAgICBwcmludGYoIipwMT0lZFx0KnAyPSVmXHQqcDM9JWZcdCooZmxvYXQqKXA0PSVmXG5cbiIsKnAxLCpwMiwqcDMsKihmbG9hdCopcDQpOwogICAgLyog77+977+977+977+977+977+977+977+977+9IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSDvv73vv73vv73vv73vv73vv73vv73vv73vv73vv70gKi8KICAgIHAxKys7CiAgICBwMy0tOwogICAgcHJpbnRmKCJwMT0lcFx0cDI9JXBcdHAzPSVwXG4iLHAxLHAyLHAzKTsKICAgIHByaW50ZigiKnAxPSVkXHRcdCpwMj0lZlx0KnAzPSVsZlxuIiwqcDEsKnAyLCpwMyk7CiAgICBwMSAtPSA0OwogICAgcDMgPSAoZG91YmxlKikmYSAtIDE7CiAgICBwcmludGYoInAxPSVwXHRwMj0lcFx0cDM9JXBcbiIscDEscDIscDMpOwogICAgcHJpbnRmKCIqcDE9JWRcdCpwMj0lZlx0KnAzPSVsZlxuIiwqcDEsKnAyLCpwMyk7CiAgICByZXR1cm4gMDsKfQo=