Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Массивы и строки

Статус пользователя Revelation
сообщение 13.8.2014, 19:43
Сообщение #1
Стаж: 13 лет

Сообщений: 1051
Благодарностей: 401
Полезность: 1075

Разберем массивы и строки. Что это такое и с чем его едят.

Массивы

Массивы - последовательность данных в последовательном списке. Массивы очень полезны для хранения нескольких единиц данных в одной переменной, а зачастую могут значительно упростить многие задачи.

Объявление массивов:

Массивы объявляются с помощью квадратных скобок. В квадратных скобках объявляется размер массива. Примеры:
Код:
new abc[10]; // Набор из 10 чисел целового типа (integer)
new Float:def[5]; // Набор из 5 дробных чисел (float)


По умолчанию, значения массива равны 0 (нулю). Но вы так же можете присвоить в начале свои данные:
Код:
new abc[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
new Float:def[5] = {1.2, 1.3, 1.2, 1.3, 1.4}

Значения объявляются в фигурных скобках и перечисляются через запятые.

Если не указать размер массива (в квадратных скобках), но при этом указать значения (в фигурных скобках):
Код:
new abc[] = {1, 2, 3, 4, 5}

То компилятор определит размер массива автоматически. В данном случаи размер массива равен 5.

Использование массивов:

Массивы можно использовать как обычные переменные. Но главное отличие массивов от простых переменных - то, что массив должен быть индексируемым.

Пример с индексами:
Код:
new abc[5];
abc[0] = 1;
abc[1] = 2;
abc[2] = 1;
abc[3] = 4;
abc[4] = 6;

В Sourcepawn нумерация всегда начинается с 0 (нуля)! Если в массиве N элеметов, то нумерация будет от 0 до N-1 (!).
В данном примере приведено присвоение всем 5 элементам массива.
При abc[5] = 7; например, выдаст ошибку, так как массив может вместить только 5 элементов.

Строки


Строки - комбинация из массивов и однострочных переменных.
Отличием от других языков программирования является то, что вы должны заранее знать (представлять), какой размер будет у строк. Они могут вырасти лишь до того, какой размер вы указали.
Запомните, строки записываются в двойных кавычках!

Объявление новых строк:


2 примера ввода строк:
Пример 1
Код:
new String:str[] = "Привет!";
new String:message[6] = "Мир";

равносилен следующему примеру:
Код:
new String:str[8];
new String:message[4];

str[0] = "П";
str[1] = "р";
str[2] = "и";
str[3] = "в";
str[4] = "е";
str[5] = "т";
str[6] = "!";
str[7] = 0;

message[0] = "М";
message[1] = "И";
message[2] = "Р";
message[3] = 0;


Очень важно помнить о концепции нулевого символа, который свидетельствует о конце строки. Компилятор и большинство SourceMod функций будут автоматически остановлены нулевым символом, поэтому он является очень важным, при манипулировании строками напрямую.

На этом все, задавайте вопросы, если что не понятно.
Прошу прощения за оплошность с предыдущей статьей (подобных статьей еще не создавал, язык изучал самостоятельно).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя Legenda
сообщение 13.8.2014, 19:47
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Массив - набор однотипных данных с произвольным доступом(по индексу).

последовательность данных в последовательном списке это что-то за гранью разума...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 13.8.2014, 20:19
Сообщение #3
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Цитата(Revelation @ 13.8.2014, 21:43) *
По умолчанию, значения массива равны 0 (нулю).

По идее это так если он глобальный (или static) или объявлен через new.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя coolman
сообщение 19.1.2015, 20:58
Сообщение #4


Стаж: 19 лет
Город: Екатеринбург

Сообщений: 1220
Благодарностей: 218
Полезность: 149

для меня массив всегда был чем то непостижимым, до сих пор не могу осилить и на практике применить, вроде читаешь и все понятно, смотришь в код и хренас с два разберешь (((
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Scalario
сообщение 17.2.2015, 21:51
Сообщение #5


Стаж: 11 лет

Сообщений: 118
Благодарностей: 114
Полезность: 416

Цитата(coolman @ 19.1.2015, 21:58) *
для меня массив всегда был чем то непостижимым, до сих пор не могу осилить и на практике применить, вроде читаешь и все понятно, смотришь в код и хренас с два разберешь (((

Желания для понимания видимо недостаточно)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: