Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
#1

в чем подвох?! - C++

20.11.2009, 21:19. Просмотров 410. Ответов 6
Метки нет (Все метки)

всем здраствуйте, вот в книжке дана, вот эта кодировка и задание, чтобы найти ошибку и исправить, я запускал и ошибку указал на m= a; но я понял почему, но как исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<stdio.h>
#include<conio.h>
int main(void)
{
int *a, b;
float *x, y = 3.5;
double *m, n;
clrscr();
printf("  Enter b = ");
scanf("%d", &b);
a = &b;
x = &y;
printf("  a = %p\tb = %d\n", a, b);
getch();
b -= y;
printf("  a = %p\t*a = %d\tb = %d\n", a, *a, b);
getch();
m =  a;
printf("  a = %p\tm = %p\n", a, m);
getch();
m = &n;
printf("  n = %p\tm = %p\n", &n, m);
getch();
n = 5.5;
m++;
printf("  n = %f\tn = %p\tm = %p\n", n, &n, m);
getch();
*m = (float) *a - n + (int) *x;
printf("  m = %p\t*m = %f\n", m, *m);
getch();
m -= 1;
printf("  n = %f n = %p m = %p *(m+1) = %f\n", n, &n, m, *(m+1));
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2009, 21:19     в чем подвох?!
Посмотрите здесь:

Где подвох? C++
C++ в чем ошибки?
в чем ошибка? C++
C++ Циклический сдвиг, где подвох?
C++ В чем ошибка?
C++ В чем ошибка?
в чем ошибка? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
20.11.2009, 21:39     в чем подвох?! #2
Может так!
C++
1
m =  (double*)a;
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
20.11.2009, 21:47  [ТС]     в чем подвох?! #3
могли бы теперь вы, извините за наглость (:
в чем суть программы?))
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
20.11.2009, 21:52     в чем подвох?! #4
Походу научить понимать работу указателей: для чего они нужны и как ими пользоваться
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
20.11.2009, 21:53  [ТС]     в чем подвох?! #5
да да, только что именно делает программа, я чет не догоняю...
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
20.11.2009, 22:07     в чем подвох?! #6
C++
1
2
printf("  Enter b = ");
scanf("%d", &b);
вводим число b

C++
1
a = &b;
Указателю а присваиваем адрес ячейки памяти (ЯП) переменной b
C++
1
x = &y;
тоже самое для x и y
C++
1
printf("  a = %p\tb = %d\n", a, b);
выводим на экран значение указателя a (адрес ЯП b и переменную b)

C++
1
b -= y;
отнимаем от b целое значение переменной y, так как b типа int

C++
1
printf("  a = %p\t*a = %d\tb = %d\n", a, *a, b);
выводим ЯП b, b и b;

C++
1
m =  (double*)a;
присваиваем указателю m значение указателя a. Используем (double*), чтобы привести значение а к типу переменной m
C++
1
printf("  a = %p\tm = %p\n", a, m);
выводим ЯП b и ЯП b

C++
1
2
3
m = &n;
printf("  n = %p\tm = %p\n", &n, m);
n = 5.5;
ищем аналогию ранее

C++
1
m++;
Переменной m назначаем следующую (+1) ЯП

C++
1
2
3
4
5
printf("  n = %f\tn = %p\tm = %p\n", n, &n, m);
*m = (float) *a - n + (int) *x;
printf("  m = %p\t*m = %f\n", m, *m);
m -= 1;
printf("  n = %f n = %p m = %p *(m+1) = %f\n", n, &n, m, *(m+1));
Здесь по-моему все понятно!!!
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2009, 22:13     в чем подвох?!
Еще ссылки по теме:

в чем? C++
В чем прикол?) C++
C++ В чем ошибка ?!
C++ в чем ошибка?
C++ В чем ошибка?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
20.11.2009, 22:13  [ТС]     в чем подвох?! #7
спасибо!
Yandex
Объявления
20.11.2009, 22:13     в чем подвох?!
Ответ Создать тему
Опции темы

Текущее время: 03:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru