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

[Указатели]Использование операции получения адреса операнда - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Осуществить циклический сдвиг элементов в матрице на k элементов вправо или вниз http://www.cyberforum.ru/cpp-beginners/thread653668.html
Осуществить циклический сдвиг элементов в мат-це на k элементов вправо или вниз (в зависимости от введенного режима). Число k может быть больше кол-ва эл-ов с строке или столбце.
C++ с++ проверка правильного ввода дат и сравнения их Переменной t присвоить значение true , если дата m,d,y предшествует дате m1,d1,y1, иначе t=false. (m -месяц d-день y-год ) Нужно прописать проверку чтобы месяца были от 1 до 12 и каждый имел своё... http://www.cyberforum.ru/cpp-beginners/thread653658.html
Нарушение прав доступа при записи C++
Привет всем! Извините за тупизм но у меня проблема. #include <iostream> using namespace std; void f(char* str) { int length = strlen(str); for (int i = 0; i < length; i++) if (i % 2 ==...
C++ (В С + + консольном режиме).Распознавание цепочек по заданным шаблонам в текстовых файлах
Метасимвол - \ а. Содержание метасимвол - знак арифметической операции. Сформировать текст, переставив в найденных словах знаки операций на начало.
C++ Класс в С++ http://www.cyberforum.ru/cpp-beginners/thread653628.html
реализовать с помощью класса динамический массив комплексных чисел: -выделить память под динамический массив комплексных чисел; -ввод комплексных чисел в массив; -вывод на экран;
C++ Генерация случайного простого числа Добрый вечер всем! У меня такая проблемма. Необходимо чтобы сгенерировалось 2 простых случайных числа. Для этого я написал функцию с которой вроде как проблемм нет, проблемма с её вызовом. В main я... подробнее

Показать сообщение отдельно
Jimmy
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 11
18.09.2012, 19:23  [ТС]
Посидел, почитал. Не очень понимаю смысл приведения типов тут. Как я понял, имеет смысл определить тип void для указателя, если тип неизвестен(как в моем примере) и для правильного вывода и в каких еще случаях? Результат работы моей программы:
0012FF70
A└*↕
0012FF5C
0012FF60
Address = 0012FF70
Address = 0012FF77
Address = 0012FF5C
Address = 0012FF60
Заинтересовался второй строкой консольного вывода. Получается, что в поток вывода попал указатель на c_val и cout начал выводить все байты по очереди до того момента, пока не встретил закрывающий ноль? Поэтому тоже следует приводить к типу войд?

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
#include <iostream>
using namespace std;
 
void show_address(void* adr)
{
    cout << "Address = " << adr << endl;
}
 
int main()
{
    int i_val = 10;
    char c_val = 'A';
    char c_arr[] = "abc";
    int i_arr[] = {1,2,3};
 
    cout << &i_val << endl;
    cout << &c_val << endl;
    cout << &c_arr << endl;
    cout << &i_arr << endl;
 
    show_address(static_cast<void *>(&i_val));
    show_address(static_cast<void *>(&c_val));
    show_address(static_cast<void *>(&c_arr));
    show_address(static_cast<void *>(&i_arr));
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru