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

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

Войти
Регистрация
Восстановить пароль
 
oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
#1

Причина такого вывода данных? - C++

24.02.2013, 17:21. Просмотров 218. Ответов 7
Метки нет (Все метки)

Простой пример. Определил размерность массива 100. Так почему sizeof выдаёт значение 400, а не 100? Любые значения множаться на 4. Это как же так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <array>
#include <locale>
#include <time.h>
using namespace std;
 
int M [100];
 
int main ()
{
    
cout << sizeof(M);
            
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 17:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Причина такого вывода данных? (C++):

Перегрузка оператора вывода в С++ (для вывода данных вектора) - C++
Как правильно перегрузить оператор вывода для вектора чтобы он выводил все данные из вектора ? Для этого класса есил можно помогите. ...

Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки - C++
Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки таблицы; - ввода и...

Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных - C++
Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных. это надо сделать в этой...

Ошибка вывода данных в файл - C++
Помогите найти ошибку. Есть программа, которая выводит массив f из р=53 строк. В первой колонке х - целые числа от -26 до 26, во второй...

Способ вывода данных на экран - C++
Как выбрать способ вывода данных (в файл или на консоль), чтобы при последующих вычислениях оставался только один способ?

Функция вывода на экран данных - C++
Не выводится на экран сумма двух матриц. 87-88 строчки. Кто может подсказать почему? Заранее большое спасибо #include &quot;stdafx.h&quot; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
24.02.2013, 17:22 #2
oleg@tor1, это размер массива в байтах. То есть 100 * размер одного элемента (sizeof(int)).
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
24.02.2013, 17:23 #3
Размер переменной int 4 байта. У вас массив из 100 таких переменных.
Посмотрите сами
C++
1
cout<<sizeof(int)<<endl;
oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
24.02.2013, 17:26  [ТС] #4
Да, точно. Спасибо! ))

Добавлено через 1 минуту
Господа, подскажите функцию, которая выведет кол-во элементов массива, по типу vector.size();
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
24.02.2013, 17:35 #5
Нет такой, разве что так можно:
C++
1
sizeof(M) / sizeof(*M)
oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
24.02.2013, 17:40  [ТС] #6
Спасибо!
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
24.02.2013, 17:44 #7
oleg@tor1, только учти, что при передаче массива в функцию (а передается он как указатель на первый элемент) такой подход не прокатит.

C++
1
2
3
4
void foo(int * arr)
{
    cout << sizeof(arr); // размер указателя, а не массива
}
oleg@tor1
32 / 17 / 2
Регистрация: 05.09.2011
Сообщений: 152
24.02.2013, 17:50  [ТС] #8
Понятно. Еще раз спасибо. )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2013, 17:50
Привет! Вот еще темы с ответами:

Цикл вывода диапазона данных - C++
Не могу понять почему не выводит минимальное значение, хотя когда тип меняю на char или на short int , то всё прекрасно работает. Почему...

Ошибка вывода данных в массиве строк - C++
Здравствуйте. Есть программа, где создается динамический массив строк, заносится туда информация с клавиатуры и выводится сам массив....

Как посчитать время вывода данных? - C++
В общем, дали такое задание: Выяснить в сколько раз вывод данных при помощи printf быстрее вывода данных при помощи cout Пытался...

Пять способов ввода и вывода данных - C++
Помогите пожалуйста с решение задачи. Написать программу, реализующую 5 способов ввода данных (типа символ) и 5 способов вывода...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.02.2013, 17:50
Ответ Создать тему
Опции темы

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