Есть следующая ф-я.
int main()
{
bool arr[6];
for (int i = 0; i < 6; i++)
{
cout << &arr[i] << " ";
}
cout << endl;
char arr2[6];
for (int i = 0; i < 6; i++)
{
cout << &arr2[i] << " ";
}
cout << endl;
return 0;
}
Почему при массиве из char выводятся непонятные символы, а не 16-ричные числа?
Оператор cout << c
; где с
имеет тип char*
, считает, что с
- нуль-терминированная сишная строка. Чтобы вывести адрес типа char*
, нужно привести данный тип к void*
, например: cout << (void*)c;
к вышесказанному прибавлю - вот так можно получить адреса ячеек массива из типа char:
#include <iostream>
using namespace std;
int main(){
bool arr[6];
for (int i = 0; i < 6; i++)
{
cout << &arr[i] << " ";
}
cout << endl;
char arr2[6];
for (int i = 0; i < 6; i++)
{
cout << &arr2 + i << " "; // получаем адреса с помощью адресной арифметики
}
cout << endl;
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Знаю, что в JAVA передача исключения реализуется через объекты класса
Есть класс downloader и есть класс dataНужно передать downloader у data, чтобы из data вызвать функцию, которая у downloader
Есть играПерсонаж игры произносит много разных реплик (~400 штук)