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

Ссылки. Разные типы. - C++

Восстановить пароль Регистрация
 
Sunman
56 / 56 / 4
Регистрация: 02.03.2010
Сообщений: 406
11.04.2011, 23:47     Ссылки. Разные типы. #1
Доброй ночи. Уже как-то спрашивал, но нормального ответа не получил к сожалению. Есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
    int x=123;
    int &ir=x;
    double &dr=(double &)x;
    cout.precision(4);
   cout <<"&x="<<&x<<endl;
   cout <<"&ir="<<&ir<<endl;
   cout <<"&dr="<<&dr<<endl;cout <<"&dr="<<dr<<endl;
   cin >>x;
   cout <<"&x="<<x<<endl;
   cout <<"&ir="<<ir<<endl;
   cout <<"&dr="<<dr<<endl;
 
   system("pause");
   return 0;
}
результат работы:
&x=0x22ff24
&ir=0x22ff24
&dr=0x22ff24
dr=5.284e-308
0
x=0
ir=0
dr=5.284e-308
Для продолжения нажмите любую клавишу . . .
Почему dr не меняет значения? По идее же должен..
И еще вопрос.. как задать формат вывода? precision'ом не получается.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2011, 23:47     Ссылки. Разные типы.
Посмотрите здесь:

Типы данных C++
Реализовать список, поля которого могут хранить разные типы данных C++
типы данных C++
C++ Как переопределить функцию так, чтобы она не только могла принимать разные параметры, но и возвращать тоже разные?
Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си? C++
Непонятный синтаксис, указатели, типы, ссылки C++
Контейнер, наследование и разные типы данных C++
Размер указателя на разные типы данных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
12.04.2011, 01:10     Ссылки. Разные типы. #2
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
36
37
38
39
40
41
42
43
44
45
#include <iostream>
 
void bitMemoryPrint(void* memory)
{
    char *a = (char*) memory;
    for(short i = 0; i < 8; ++i)
    {
        char s = *a;
        ++a;
        for(short j = 0; j < 8/*бит*/; ++j)
        {
            std::cout << ( ( s % 2 ) ? 1 : 0 );
            s /= 2;
        }
        std::cout << std::endl;
    }
}
 
void byteMemoryPrint(void* memory)
{
    char *a = (char*) memory;
    for(short i = 0; i < 8; ++i)
        std::cout << (int) a[i] << '\t';
    std::cout << '\n';
}
 
int main()
{
    void* memory = new char[8];
 
    double* number = (double*)memory;
 
    int* num = (int*)memory;
 
    while(true)
    {
        std::cin >> *number;//считывает число, просто замени если хочешь считывать как int
        std::cout << "==========\n";
        bitMemoryPrint(memory);//выводит побитно нашу память...
        std::cout << "==========\n";
        byteMemoryPrint(memory);//выводит побайтно
        std::cout << "==========\n";
        std::cout << *number << '\n' << *num << '\n';//выводит интерпретацию в int и в double
    }
}
вот,, специально тебе написал. поюзай, всё будет исчерпывающе понятно...
Yandex
Объявления
12.04.2011, 01:10     Ссылки. Разные типы.
Ответ Создать тему
Опции темы

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