Да, это даст тот же результат.Но пример плохо написан.
Я бы внимательно прочитал Tutorialspoint.Это сайт, известный плохим кодом C, и многие плохие привычки, которые вы видите в вопросах здесь, в SO, можно отследить на этом сайте.Хорошо, это неподтвержденная информация, но я спросил у пользователя, почему он показал результат malloc
, и они ответили, что узнали об этом на Tutorialspoint.На самом деле вы можете увидеть (как минимум) четыре примера в этом коротком фрагменте.
- Они приводят результат от вызова к
time()
, который совершенно не нужен и просто загромождает код. - По какой-то причине они используют переменную
t
, которая в этом примере совершенно бесполезна.Если вы прочтете документацию по time()
, то увидите, что в этом примере достаточно просто передать NULL. - Зачем использовать переменную
n
?Для этого короткого примера это совершенно нормально с жестко заданным значениемИ когда вы используете переменные, чтобы избежать жестко закодированных значений, вы должны объявить их const
и дать им гораздо более описательное имя, чем n
. - Пропущено
#include<time.h>
, что было бы хорошо, если бы они также опускали остальныеиз включенных.
Можно также поспорить о двух других вещах, но некоторые люди с этим не согласятся.
- Зачем объявлять
i
вне цикла for?Объявление его внутри было законным с C99, которому 20 лет. - Зачем заканчивать функцию с
return 0
?Пропустить это тоже нормально с C99.Возврат в main необходим только в том случае, если вы хотите вернуть что-то, отличное от 0.
И то, и другое выше полезно запомнить, если ваша цель - поддерживать очень старый код C в средах, где вы не 'у него есть компиляторы, которые поддерживают C99.Но насколько это распространено?
Так что, если бы мне пришлось переписать пример в tutorialspoint, я бы написал это так:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
srand(time(NULL));
for (int i = 0; i < 5; i++) {
printf("%d\n", rand() % 50);
}
}
Одна вещь, которую они сделали хорошо, это то, что они использовали int main()
вместо int main(int argc, char **argv)
.Нет смысла использовать вторую подпись, если вы не используете переменные.