С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/683: Рейтинг темы: голосов - 683, средняя оценка - 4.51
2 / 2 / 1
Регистрация: 24.02.2015
Сообщений: 206
1

Инициализация массива нулями с помощью {}

19.12.2015, 17:28. Показов 140425. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
зачем после размера массива указываются скобки int mas[1000] = {}?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2015, 17:28
Ответы с готовыми решениями:

Инициализация членов класса нулями
Необходимо инициализировать члены класса нулями. class ID { public: int GetKey() { return...

Инициализация объекта нулями или мусором
Здравствуйте. Я бы воспользовался поиском, но даже не знаю, как ему сформулировать вопрос. ...

Замените все четные значения введённого с клавиатуры массива нулями и вывести скорректированные значения (с помощью указателей)
Дорогие форумчане! Помогите пожалуйста с заданием!:cry: Введите с...

Инициализация с помощью конструктора без параметров. Почему не нужны скобки?
Доброго времени суток форумчане. Такой вопрос , почему в конструкторе без параметров не нужно...

14
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
19.12.2015, 17:30 2
G_Man002, Для инициализации по умолчанию, я так думаю. Ну в случае с int это 0.
2
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
19.12.2015, 17:34 3
При инициализации, там, через запятую, пишутся значения, которыми инициализируются элементы массива. Если ничего не поставить, или поставить 0, то все элементы будут инициализированны 0.
2
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.12.2015, 17:38 4
А вот если единицу поставить, то всё единицами не заполняется. С нулём какой-то неудачный вариант.
1
2 / 2 / 1
Регистрация: 24.02.2015
Сообщений: 206
19.12.2015, 17:48  [ТС] 5
ааа,типа если 50 элементов и поставить = {25},то все 50 элементов будут иметь значение 25,я так понял.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.12.2015, 18:33 6
Цитата Сообщение от G_Man002 Посмотреть сообщение
все 50 элементов будут иметь значение 25
Нет.
0
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
19.12.2015, 18:40 7
Цитата Сообщение от G_Man002 Посмотреть сообщение
ааа,типа если 50 элементов и поставить = {25},то все 50 элементов будут иметь значение 25,я так понял.
Первый элемент - значение 25, остальные - значение 0.

Добавлено через 2 минуты
Цитата Сообщение от nmcf Посмотреть сообщение
А вот если единицу поставить, то всё единицами не заполняется. С нулём какой-то неудачный вариант.
По-моему, с 0, то же, что и с любым другим числом (числами). Если не все значения есть, то инициализируются те элементы, для которых есть значения, остальное - нулями.
1
2 / 2 / 1
Регистрация: 24.02.2015
Сообщений: 206
19.12.2015, 18:44  [ТС] 8
Цитата Сообщение от nord_v Посмотреть сообщение
По-моему, с 0, то же, что и с любым другим числом (числами). Если не все значения есть, то инициализируются те элементы, для которых есть значения, остальное - нулями.
Получается надо делать так ={25,25,25....}?
0
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
19.12.2015, 18:47 9
Цитата Сообщение от G_Man002 Посмотреть сообщение
Получается надо делать так ={25,25,25....}?
Так утомительно. Сделай цикл для инициализации (если это менее утомительно).
0
2 / 2 / 1
Регистрация: 24.02.2015
Сообщений: 206
19.12.2015, 18:50  [ТС] 10
Цитата Сообщение от nord_v Посмотреть сообщение
Так утомительно. Сделай цикл для инициализации (если это менее утомительно).
Я так всегда и иницилизирую массив обычно.
1
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
19.12.2015, 18:54 11
Цитата Сообщение от G_Man002 Посмотреть сообщение
Я так всегда и иницилизирую массив обычно.
Даже, если там три элемента? Вольному - воля...
1
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
19.12.2015, 19:12 12
Я говорю, что с нулём придумали неудачно в плане синтаксиса. Надо было тогда распространить на любые числа или только пустые скобки для обнуления оставить.
0
337 / 185 / 80
Регистрация: 22.08.2013
Сообщений: 724
19.12.2015, 19:23 13
Цитата Сообщение от nmcf Посмотреть сообщение
Я говорю, что с нулём придумали неудачно в плане синтаксиса. Надо было тогда распространить на любые числа
По-моему, на любые числа и распространяется, с нулём - это не особый случай.
C++
1
2
int arr[4] = {1}; // первому элементу 1, остальным 0
int arr2[4] = {0}; // первому элементу 0, остальным 0
2
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
20.12.2015, 12:16 14
nmcf, nord_v прав, проверьте на таком коде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
//#include <windows.h>
//#include <memory>
 
using namespace std;
 
int main() {
    int n[4] = { };
    int n1[4] = { 1 };
    for( int i : n ) 
        cout << i << " ";
    cout << "\n";
    for( int i : n1 )
        cout << i << " ";
    cout << "\n";
    getch();
    return 0;
}
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.12.2015, 13:38 15
makfak, я не говорю, что он не прав. Просто на мой взгляд не очевидно такое поведение.
0
20.12.2015, 13:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2015, 13:38
Помогаю со студенческими работами здесь

Ввести два одномерных массива и заменить нулями те элементы второго массива, которые есть в первом
Ввести два одномерных массива и заменить нулями те элементы второго массива, которые есть в первом

Инициализация массива
int ** mas, n; cout &lt;&lt; &quot;Введите порядок треугольника паскаля: &quot; &lt;&lt; endl; cin &gt;&gt; n; mas = new...

Инициализация массива C++
Почему, если мы не инициализируем переменную, то при попытке работы с ней будет ошибка int main(){...

инициализация массива
Доброго времени. Инициализация массива с указанием размера 80 проходит гладко, при указании...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru