PHP, с помощью MT:
$items_array = array("alpha", "bravo", "charlie");
$last_pos = count($items_array) - 1;
$random_pos = mt_rand(0, $last_pos);
$random_item = $items_array[$random_pos];
Потому что стандарт C так говорит, и он получает единственный голос.
Как последствия:
sizeof (int)
вместо объектного выражения. int a; printf ("% d \ n", sizeof a);
прекрасно. Их часто видят, во-первых, потому что они re необходимо как часть выражения приведения типа, а во-вторых, потому что sizeof имеет очень высокий приоритет, поэтому sizeof a + b
не то же самое, что sizeof (a + b)
. Но они не являются частью вызова sizeof, они являются частью операнда. sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
а во-вторых, потому что sizeof имеет очень высокий приоритет, поэтому sizeof a + b
не то же самое, что sizeof (a + b)
. Но они не являются частью вызова sizeof, они являются частью операнда.
sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
а во-вторых, потому что sizeof имеет очень высокий приоритет, поэтому sizeof a + b
не то же самое, что sizeof (a + b)
. Но они не являются частью вызова sizeof, они являются частью операнда.
sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
поэтому sizeof (a + b)
не то же самое, что sizeof (a + b)
. Но они не являются частью вызова sizeof, они являются частью операнда.
sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
поэтому sizeof (a + b)
не совпадает с sizeof (a + b)
. Но они не являются частью вызова sizeof, они являются частью операнда.
sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
Но они не являются частью вызова sizeof, они являются частью операнда. sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
Но они не являются частью вызова sizeof, они являются частью операнда. sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
sizeof a ++
не изменяет a). Функция будет отличаться по всем этим точкам. Вероятно, есть и другие различия между функцией и унарным оператором, но я думаю, что этого достаточно, чтобы показать, почему sizeof не может быть функцией, даже если была причина этого хотеть.
Его можно использовать как константу времени компиляции, что возможно, только если это оператор, а не функция. Например:
union foo {
int i;
char c[sizeof(int)];
};
Синтаксически, если бы это не был оператор, это должен был бы быть макрос препроцессора, поскольку функции не могут принимать типы в качестве аргументов. Этот макрос было бы сложно реализовать, поскольку sizeof
может принимать в качестве аргумента как типы, так и переменные.
Потому что:
sizeof
будет иметь нет способа определить размер Есть небольшое отличие от функции - значение sizeof разрешается во время компиляции, но не во время выполнения!
Потому что это не функция. Вы можете использовать его так:
int a;
printf("%d\n", sizeof a);
Функция имеет точку входа, код и т. Д. Функция должна запускаться во время выполнения (или встроена), размер sizeof должен определяться во время компиляции.
Потому что стандарт C так говорит, и он получает единственный голос.
И стандарт, вероятно, правильный, потому что sizeof
принимает тип и
В целом , если домен или домен (или оба) функции содержат элементы, значительно более сложные, чем действительные числа, эта функция называется оператором. И наоборот, если ни область, ни область значений функции не содержат элементов более сложных, чем действительные числа, эта функция, вероятно, будет называться просто функцией. Тригонометрические функции, такие как косинус, являются примерами последнего случая.
Кроме того, когда функции используются настолько часто, что они развиваются быстрее или проще, чем общая форма F (x, y, z, ...), в результате специальные формы также называются операторами. Примеры включают инфиксные операторы, такие как сложение "
Помимо уже указанных ответов об использовании вектора , Vector также имеет набор методов для перечисления и извлечения элементов, которые отличаются от интерфейса List, и разработчики (особенно те, кто изучал Java до 1.2) могут использовать их, если они есть в коде. Хотя перечисления быстрее, они не t проверить, была ли коллекция изменена во время итерации, что может вызвать проблемы, и учитывая, что вектор может быть выбран для ее синхронизации - с сопутствующим доступом из нескольких потоков, это делает эту проблему особенно опасной. Использование этих методов также связывает большой объем кода с Vector, так что будет нелегко заменить его другой реализацией List.
эта функция называется оператором. И наоборот, если ни область, ни область значений функции не содержат элементов более сложных, чем действительные числа, эта функция, вероятно, будет называться просто функцией. Тригонометрические функции, такие как косинус, являются примерами последнего случая.Кроме того, когда функции используются так часто, что они развиваются быстрее или проще, чем общая форма F (x, y, z, ...), в результате получается специальные формы также называются операторами. Примеры включают инфиксные операторы, такие как сложение «+» и деление «/», и постфиксные операторы, такие как факториал «!». Это использование не связано со сложностью задействованных сущностей.