Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задача 2.
- Набрать текст программы, найти в нем синтаксические ошибки и исправить их, в начало программы добавить вывод на экран адресов всех переменных, а в конец – значений всех переменных, проанализировать полученные результаты и объяснить, почему они именно такие. Заменить оператор «m+=2;» оператором «m++;», проанализировать результат.
- Текст программы:
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- char *p, c;
- int *a, b;
- float *x, y = 3.5;
- double *m, n;
- printf("p = %p \tc = %p\tb = %p\ty = %p\tm = %p\tn = %p\n",&p,&c,&b,&y,&m,&n);
- a = &b;
- printf(" Enter b = ");
- scanf("%d",&b);
- printf("a = %p\t*a = %d\tb = %d\n", a, *a, b);
- p =(char*) a;
- c=*p;
- *p=*(p+3);
- *(p+3)=c;
- printf("p = %p\tc = %d\ta = %p\tb = %d\n", p, c, a, b);
- x = &y;
- printf("x = %p\t*x = %f\ty = %f\n", x, *x, y);
- a =(int*) x;
- *a =*x;
- printf("a = %p\t*a = %d\tx = %p\t*x = %f\ty = %f\n",a,*a,x,*x,y);
- a = &b;
- y = 12345,6789;
- printf("x = %p\t*x = %f\ty = %f\n", x, *x, y);
- p = (char*)x;
- c=*p;
- *p=*(p+3);
- *(p+3)=c;
- printf("p = %p\tc = %d\tx = %p\ty = %f\n", p, c, x, y);
- m = &n;
- printf("m = %p\t*m = %lf\tn = %lf\n", m, *m, n);
- n = 5.5;
- printf("m = %p\t*m = %lf\tn = %lf\n", m, *m, n);
- b = n = y = 1.7;
- printf("b = %d y = %f n = %lf\n", b, y, n);
- printf("*a = %d\t*x = %f\t*m = %lf\n", *a, *x, *m);
- m++;
- printf("n = %lf\tn = %p\tm = %p\n", n, &n, m);
- *m = (float)*a - n + (int)*x;
- printf(" m = %p\t*m = %lf\n", m, *m);
- printf("p = %p \tc = %p\tb = %p\ta = %p\tm = %p\tn = %p\tx = %p\n",p,c,b,a,m,n,x);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement