0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
1

Адрес переменной char не выводится

17.04.2021, 17:40. Показов 1120. Ответов 7
Метки нет (Все метки)

Подскажите почему тип Char не выводит числа(например у меня сердце у консоли вывело, но не число)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
 
using namespace std;
 
int main()
{
    // Завдання 1
    int a = 5;
    char x = 3;
    float b = 8.3;
    double c = 2.19;
 
    // Завдання 2
    int* pa = &a; //ініціалізована змінна типу int
    char* px = &x; //ініціалізована змінна типу char
    float* pb = &b; //ініціалізована змінна типу double
    double* pc = &c; //ініціалізована змінна типу float
    float* ptr(NULL); // нульовий вказівник
    char* p; // неініціалізовані вказівники
 
    // Завдання 3
    ptr = &b; //надали нульовому значенню, значення b
    cout << "prt\t" << *ptr << endl;
    system("pause");
 
    // Завдання 4
    int* ptrInt = new int(5); //за допомогою команди NEW зарезервували область динамічної пам’яті,  її адресу присвоїли вказівникам, що не були ініціалізовані спочатку
    char* ptrChar = new char(3);
    float* ptrFloat = new float(8.3);
    double* ptrDouble = new double(2.19);
    cout << "\nprtInt\t" << *ptrInt << endl;
    cout << "\nprtChar\t" << *ptrChar << endl;
    cout << "\nprtFloat\t" << *ptrFloat << endl;
    cout << "\nptrDouble\t" << *ptrDouble << endl;
    system("pause");
 
    // Завдання 5
    cout << "pa\t" << *pa << endl; //вивели на екран значення 'а' за допомогою унарної операції розіменування
    cout << "px\t" << *px << endl; //вивели на екран значення 'x' за допомогою унарної операції розіменування
    cout << "pb\t" << *pb << endl; //вивели на екран значення 'b' за допомогою унарної операції розіменування
    cout << "\npc\t" << *pc << endl; //вивели на екран значення 'c' за допомогою унарної операції розіменування
    cout << "ptr\t" << *ptr << endl; //вивели на екран значення 'ptr' за допомогою унарної операції розіменування
    system("pause");
 
    // Завдання 6
    *pa = 9; //змінили значення змінної а
    *px = 7; //змінили значення змінної х
    *pb = 3.48; //змінили значення змінної b
    *pc = 6.12; //змінили значення змінної с
    cout << "\nA\t" << a << endl;
    cout << "\nX\t" << x << endl;
    cout << "\nB\t" << b << endl;
    cout << "\nC\t" << c << endl;
    system("pause");
 
    //Завдання 7
    cout << "\nA\t" << a << "\t" << ptr << endl;
    cout << "\nX\t" << x << "\t" << ptr << endl;
    cout << "\nC\t" << c << "\t" << ptr << endl;
    cout << "\nB\t" << b << "\t" << ptr << endl;
    system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2021, 17:40
Ответы с готовыми решениями:

Адрес переменной char не выводится
Здравствия всем, люди добрые подскажите пожалуйста, что я как обычно делаю неправильно. int x =...

Выводится содержимое переменной, а не адрес
Тип char. Почему выводится содержимое? pAdd-&gt;name=a.taskName; cout&lt;&lt;&amp;a.taskName&lt;&lt;endl;

Почему у массива char выводится строка, а для остальных типов - адрес?
Доброго времени суток! Возник вопрос, не могу понять. Есть вывод строки char char...

Выводится адрес переменной, вместо ее значения
Пишу программу просмотра логинов и паролей из хрома. Все работает, за исключением того, что в...

7
Эксперт CЭксперт С++
3445 / 2029 / 1109
Регистрация: 14.12.2018
Сообщений: 3,982
Записей в блоге: 1
17.04.2021, 17:44 2
Цитата Сообщение от Sasha_hutsul Посмотреть сообщение
Адрес переменной char не выводится
Что (какой Адрес переменной ?) и Где не выводит ?
0
0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
17.04.2021, 17:45  [ТС] 3
Ну выводит, но не число, а просто сердце, сейчас скину скрин

Добавлено через 56 секунд
https://prnt.sc/11kzwln
0
2413 / 1159 / 429
Регистрация: 08.11.2016
Сообщений: 3,232
17.04.2021, 17:48 4
Sasha_hutsul, cout при передаче ему переменной типа char выводит символ соотвествующий цифровому коду записанному в переменную, для вывода кода символа используйте приведение типов
C++
1
2
char ch = 6;
std::cout << (int)ch;
1
Эксперт CЭксперт С++
3445 / 2029 / 1109
Регистрация: 14.12.2018
Сообщений: 3,982
Записей в блоге: 1
17.04.2021, 17:49 5
Цитата Сообщение от Sasha_hutsul Посмотреть сообщение
char* ptrChar = new char(3);
Это по-моему должно быть (пример):
C++
1
char* ptrChar = new char('3');
1
С чаем беда...
Эксперт CЭксперт С++
9988 / 5341 / 1460
Регистрация: 18.10.2014
Сообщений: 12,841
17.04.2021, 17:54 6
Цитата Сообщение от Sasha_hutsul Посмотреть сообщение
Адрес переменной char не выводится
Где в этой программе вывод "адреса переменной char" и какое отношение этот вопрос вообще имеет к "адресу переменной char"?

Цитата Сообщение от Sasha_hutsul Посмотреть сообщение
Ну выводит, но не число, а просто сердце, сейчас скину скрин
Но "сердце" на этом скрине получилось из

C++
1
cout << "\nprtChar\t" << *ptrChar << endl;
и из

C++
1
cout << "px\t" << *px << endl; //вивели на екран значення 'x' за допомогою унарної операції розіменування
Тут нет никакого вывода "адреса переменной char" даже отдаленно. При чем здесь "адрес" вообще?
0
Модератор
Эксперт С++
12085 / 9762 / 5904
Регистрация: 18.12.2011
Сообщений: 26,206
17.04.2021, 17:54 7
Лучший ответ Сообщение было отмечено Sasha_hutsul как решение

Решение

для указателя char* оператор
C++
1
ostream& operator<<(ostream&,const char*);
перегружен на вывод текстовой строки, начинающейся с указанного адреса.
Поэтому, для вывода адреса символа нужно сделать приведение к void*
C++
1
2
char c;
cout<<(void*)&c;
2
1468 / 927 / 280
Регистрация: 25.01.2019
Сообщений: 2,339
17.04.2021, 18:15 8
Цитата Сообщение от zss Посмотреть сообщение
перегружен на вывод текстовой строки
Ага, вот где собака закопана!
Вот почему их поведение отличается от остальных массивов.

Как всё просто оказалось.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2021, 18:15
Помогаю со студенческими работами здесь

Адрес переменной к типу (char*)
Здравствуйте. Для &quot;запоминания&quot; данных переменных можно использовать сериализацию аля: int i =...

Как получить адрес переменной типа unsigned char?
Всем привет! Как получить адрес переменной типа unsigned char? Всё ерунда получается #include...

Вычислить адрес верхушки стека, адрес следующей команды, адрес переменной, адрес которой содержится в BX
Помогите решить следующие задачи: 1.Вычислить адрес верхушки стэка. 2.Вычислить адрес следующей...

Для переменных типа char, int, double вывести ее адрес и значения выражений "адрес + 2" и "адрес – 1"
Написать программу, в которой определяются переменные типов char, int, double. Для каждой...

Записать в адрес переменной типа int, два символа через указатель на указатель типа char
10. Напишите программу, в которой объявляется переменная типа int,а также указатель на указатель на...

Как присвоить к новой char переменной другую char переменную с указателем
Как присвоить к новой char переменной другую char переменную с указателем #include&lt;iostream&gt;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru