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

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

Войти
Регистрация
Восстановить пароль
 
андрюха53
6 / 6 / 0
Регистрация: 26.12.2012
Сообщений: 50
#1

В чем причина - C++

12.07.2013, 18:35. Просмотров 422. Ответов 13
Метки нет (Все метки)

В общем сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
 
int b=20;
 
int *a = &b;
 
int main()
{
    cout << a << endl;
    cout << b << endl;
    cout << &b << endl;
    cout << &a << endl;
system ("pause");
}
Не какой ошибки нету но результат:

01127038
20
01127038
0112703c

Ну почему
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.07.2013, 18:39     В чем причина #2
что почему?
андрюха53
6 / 6 / 0
Регистрация: 26.12.2012
Сообщений: 50
12.07.2013, 18:40  [ТС]     В чем причина #3
Я хочу чтобы результат был примерно такой:
20
20
01127038
01127038
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
12.07.2013, 18:41     В чем причина #4
Для того чтобы получить значение а нужно использовать операцию разыименования
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
 
int b=20;
 
int *a = &b;
 
int main()
{
    cout <<*a << endl;
    cout << b << endl;
    cout << &b << endl;
    cout << &a << endl;
system ("pause");
}
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 2
12.07.2013, 18:42     В чем причина #5
все верно
cout << a << endl; - выводится адрес на который указывает a
cout << b << endl; - выводится число записанное в b
cout << &b << endl; - выводится адрес переменной b
cout << &a << endl; - выводится адрес расположения в памяти указателя a
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
12.07.2013, 18:42     В чем причина #6
01127038 // адрес b
20 ты догадался почему
01127038 // адрес b
0112703c // адрес a
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 2
12.07.2013, 18:43     В чем причина #7
андрюха53, тогда уж
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
 
int b=20;
 
int *a = &b;
 
int main()
{
    cout <<*a << endl;
    cout << b << endl;
    cout << &b << endl;
    cout << a << endl;
system ("pause");
}
soican
12.07.2013, 18:43
  #8

Не по теме:

ой как много ответов

андрюха53
6 / 6 / 0
Регистрация: 26.12.2012
Сообщений: 50
12.07.2013, 18:44  [ТС]     В чем причина #9
Цитата Сообщение от Valentina Посмотреть сообщение
Для того чтобы получить значение а нужно использовать операцию разыименования
Спасибо но результат:
20
20
01127038
0112703c -почемуто вместо 8 стоит с
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
12.07.2013, 18:46     В чем причина #10
Цитата Сообщение от андрюха53 Посмотреть сообщение
0112703c -почемуто вместо 8 стоит с
адреса разные в памяти
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
12.07.2013, 18:46     В чем причина #11
Цитата Сообщение от Кудаив Посмотреть сообщение
#include<iostream>
using namespace std;
int b=20;
int *a = &b;
int main()
{
* * cout <<*a << endl;
* * cout << b << endl;
* * cout << &b << endl;
* * cout << a << endl;
system ("pause");
}
этот вариант правильный, а в моем случае получаются разные адреса
андрюха53
6 / 6 / 0
Регистрация: 26.12.2012
Сообщений: 50
12.07.2013, 18:58  [ТС]     В чем причина #12
Цитата Сообщение от soican Посмотреть сообщение
адреса разные в памяти
Но ведь указатель и переменная одинаковый адрес
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
12.07.2013, 19:04     В чем причина #13
Цитата Сообщение от андрюха53 Посмотреть сообщение
Но ведь указатель и переменная одинаковый адрес
У вас указатель на int а равен адресу b, но при этом указатель на int имеет свой адрес.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2013, 21:27     В чем причина
Еще ссылки по теме:

C++ В чем причина
C++ В чем причина ошибки istream
В чем причина ошибки no match for? C++
C++ В чем причина некорректной работы кода?
Непредсказуемое поведение программы. В чем причина? C++

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

Или воспользуйтесь поиском по форуму:
андрюха53
6 / 6 / 0
Регистрация: 26.12.2012
Сообщений: 50
12.07.2013, 21:27  [ТС]     В чем причина #14
Цитата Сообщение от Valentina Посмотреть сообщение
У вас указатель на int а равен адресу b, но при этом указатель на int имеет свой адрес.
Ааа точно спасибо я перепутал указатели с ссылками
Yandex
Объявления
12.07.2013, 21:27     В чем причина
Ответ Создать тему
Опции темы

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