Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2011, 01:41   #1
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию char names [][]

Код:
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <conio.h>   // для задержки кода
#include "group.h"
#include <ctime>
using namespace std;

int main()
{
	setlocale(LC_ALL, "RUS"); //Функция для вызова русских символов

	char names[5][25] = {"A", "B", "C", "D", "E"}; // что значит 25??? чё делает это число?

	cout << names[4]<<endl;
	
	getch();//Задержка кода программы
	return 0;
}

Последний раз редактировалось ACE Valery; 24.07.2011 в 14:50.
Madmaxisss вне форума Ответить с цитированием
Старый 24.07.2011, 01:58   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
// что значит 25??? чё делает это число?
размер каждого внутреннего массива (строки)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 24.07.2011, 01:58   #3
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

значит, что каждая строка по 25 символов (включая нулевой)
alex_x_x вне форума Ответить с цитированием
Старый 24.07.2011, 02:03   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2alex_x_x
значит, что в каждый подмассив можно записать до 25 символов

пс.
хех, думал это автор отписал. тогда поясню, почему я тебя поправил. "по сколько строка" решит функция strlen (или аналогичная). объявляется же массив
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 24.07.2011 в 02:10.
pproger вне форума Ответить с цитированием
Старый 24.07.2011, 11:19   #5
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от Madmaxisss Посмотреть сообщение
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <conio.h> // для задержки кода
#include "group.h"
#include <ctime>
using namespace std;

int main()
{
setlocale(LC_ALL, "RUS"); //Функция для вызова русских символов

char names[5][25] = {"A", "B", "C", "D", "E"}; // что значит 25??? чё делает это число?

cout << names[4]<<endl;

getch();//Задержка кода программы
return 0;
}
Посмотрите на список инициализации массива. Он инициализируется строковыми литералами. Стоковый литерал - это массив символов. Так как у вас строковые литералы задаются в виде "A", то значит на самом деле вы инициализируете каждый из 5 элементов своего массива массивом { 'A', '\0' }. Вы могли бы задать для свлешл массива и строковst литерал s виде, например,

{ "This is a first name", "This is a second name", "This is a third name", "This is a forth name", "This is a fifth name" }

Так как длина этих строковых литералов различная, то массиву нужно укзать, сколько максимально ячеек памяти он должен выделить для каждого строкового литерала. В вашем случае этот размер установлен равный 25 символам. То есть под каждый элемент массива выделяется 25 символов, в которые заносятся значения строковых литералов из списка инициализации и справа каждый элемент дополняется двоичным нулем до достижения 25 позиций.
В вашем исходном случае массив будет в памяти выглядеть следующим образом

'A', '\0\. '\0', ....,'\0'
'B', '\0\, '\0',.....,'\0'
.........................
'E', '\0', '\0',.....,'\0'

То есть будет состоять из 5 строк по 25 колонок.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с программой. Нельзя преобразовать тип set of char к char Lasso Помощь студентам 5 07.06.2011 12:03
TListBox и TCheckListBox: Отобразить только Names, скрыть от пользователя Values polly5315 Общие вопросы Delphi 3 24.05.2010 14:53
Получение списка Database Names или AliasNames в свойство GRIPH Компоненты Delphi 0 14.05.2010 17:11
Отследить правельность выполнения names.add tae1980 Microsoft Office Excel 3 28.03.2010 15:13
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17