#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+CiNpbmNsdWRlPG1hdGguaD4KCmludCBtYWluKCkKewogICAgLyog0ILRnNCx0YvRh9C90YvQtdGXINC/0LXRgNC10LzQtdC90L3Ri9C1ICovCiAgICBpbnQgYSA9IDE7CiAgICBmbG9hdCBiID0gMjsKICAgIGRvdWJsZSBjID0gMzsKICAgIC8qIOKAndC60LDQt9Cw0YLQtdC70LggKi8KICAgIGludCAqcDEgPSAmYTsKICAgIGZsb2F0ICpwMiA9ICZiOwogICAgZG91YmxlICpwMyA9ICZjOwogICAgdm9pZCAqcDQgPSBOVUxMOwogICAgLyog0ZjQtNGA0LXRgdCwINCC0L7QsdGL0YfQvdGL0YXRlyDQv9C10YDQtdC80LXQvdC90YvRhSDQuCDRgNCw0LfQvNC10YAg0LLRi9C00LXQu+KCrNC10LzQvtC5INC/0LDQvOKCrNGC0LggKi8KICAgIHByaW50ZigiYTogICAgICBpbnQ6IHN0YXJ0IGFkZHJlc3MgJXAgZXh0ZW50ICVkXG4iLCZhLHNpemVvZihhKSk7CiAgICBwcmludGYoImI6ICAgIGZsb2F0OiBzdGFydCBhZGRyZXNzICVwIGV4dGVudCAlZFxuIiwmYixzaXplb2YoYikpOwogICAgcHJpbnRmKCJjOiAgIGRvdWJsZTogc3RhcnQgYWRkcmVzcyAlcCBleHRlbnQgJWRcblxuIiwmYyxzaXplb2YoYykpOwogICAgLyog0ZjQtNGA0LXRgdCwINGD0LrQsNC30LDRgtC10LvQtdC5INC4INGA0LDQt9C80LXRgCDQstGL0LTQtdC74oKs0LXQvNC+0Lkg0L/QsNC84oKs0YLQuCAqLwogICAgcHJpbnRmKCJwMTogcG9pbnRlcjogc3RhcnQgYWRkcmVzcyAlcCBleHRlbnQgJWRcbiIsJnAxLHNpemVvZihwMSkpOwogICAgcHJpbnRmKCJwMjogcG9pbnRlcjogc3RhcnQgYWRkcmVzcyAlcCBleHRlbnQgJWRcbiIsJnAyLHNpemVvZihwMikpOwogICAgcHJpbnRmKCJwMzogcG9pbnRlcjogc3RhcnQgYWRkcmVzcyAlcCBleHRlbnQgJWRcblxuIiwmcDMsc2l6ZW9mKHAzKSk7CiAgICBwcmludGYoInA0OiBwb2ludGVyOiBzdGFydCBhZGRyZXNzICVwIGV4dGVudCAlZFxuXG4iLCZwNCxzaXplb2YocDQpKTsKICAgIC8qIMKr0L3QsNGH0LXQvdC44oKsLCDQvdCwINC60L7RgtC+0YDRi9C1INGB0YHRi9C70LDRjtGC0YHigqwg0YPQutCw0LfQsNGC0LXQu9C4ICovCiAgICBwcmludGYoInAxOiAlcCByZWxhdGVkIHZhbHVlICVkXG4iLHAxLCpwMSk7CiAgICBwcmludGYoInAyOiAlcCByZWxhdGVkIHZhbHVlICVmXG4iLHAyLCpwMik7CiAgICBwcmludGYoInAzOiAlcCByZWxhdGVkIHZhbHVlICVsZlxuXG4iLHAzLCpwMyk7CiAgICAvKiDCu9GB0L/QvtC70YzQt9C+0LLQsNC90LjQtSDRg9C60LDQt9Cw0YLQtdC70LXQuSDQsiDQstGL0YDQsNC20LXQvdC44oKs0YUgKi8KICAgIHByaW50ZigiYT0lZFx0Yj0lZlx0Yz0lbGZcbiIsYSxiLGMpOwogICAgKnAxID0gNTsKICAgICpwMiA9ICpwMiAqICpwMTsKICAgICpwMyA9IHNxcnQoKnAzKTsKICAgIHByaW50ZigiYT0lZFx0Yj0lZlx0Yz0lbGZcbiIsYSxiLGMpOwogICAgcHJpbnRmKCIqcDE9JWRcdCpwMj0lZlx0KnAzPSVsZlxuXG4iLCpwMSwqcDIsKnAzKTsKICAgIC8qINGV0YDQuNGB0LLQsNC40LLQsNC90LjQtSDRg9C60LDQt9Cw0YLQtdC70LXQuSAqLwogICAgcDEgPSAoaW50KilwMjsKICAgIHAzID0gKGRvdWJsZSopcDI7CiAgICBwNCA9IHAyOwogICAgcHJpbnRmKCJwMT0lcFx0cDI9JXBcdHAzPSVwXHRwND0lcFxuIixwMSxwMixwMyxwNCk7CiAgICBwcmludGYoIipwMT0lZFx0KnAyPSVmXHQqcDM9JWZcdCooZmxvYXQqKXA0PSVmXG5cbiIsKnAxLCpwMiwqcDMsKihmbG9hdCopcDQpOwogICAgLyogwrvQt9C80LXQvdC10L3QuNC1INC30L3QsNGH0LXQvdC40Lkg0YPQutCw0LfQsNGC0LXQu9C10LkgKi8KICAgIHAxKys7CiAgICBwMy0tOwogICAgcHJpbnRmKCJwMT0lcFx0cDI9JXBcdHAzPSVwXG4iLHAxLHAyLHAzKTsKICAgIHByaW50ZigiKnAxPSVkXHRcdCpwMj0lZlx0KnAzPSVsZlxuIiwqcDEsKnAyLCpwMyk7CiAgICBwMSAtPSA0OwogICAgcDMgPSAoZG91YmxlKikmYSAtIDE7CiAgICBwcmludGYoInAxPSVwXHRwMj0lcFx0cDM9JXBcbiIscDEscDIscDMpOwogICAgcHJpbnRmKCIqcDE9JWRcdCpwMj0lZlx0KnAzPSVsZlxuIiwqcDEsKnAyLCpwMyk7CiAgICByZXR1cm4gMDsKfQ==