Comment srand se rapportent à la fonction rand?

Je comprends que la fonction rand() génère le même numéro(s) à chaque fois que vous l'exécutez, si vous ne changez pas le nombre de graines. C'est là que srand (). Le temps est toujours en évolution, donc je sais qu'il faut passer le temps(null) paramètre srand. Ma question est, avec le code ci-dessous à partir d'un tutoriel du site.

int main()
{
    int i, n=5;
    time_t t;

    /* Intializes random number generator */
    srand((unsigned) time(&t));

    /* Print 5 random numbers from 0 to 50 */
    for( i = 0 ; i < n ; i++ ) {
        printf("%d\n", rand() % 50);
    }

    return(0);
}

Je vois pas le lien de la srand

((unsigned) time(&t)); 

et rand.

printf("%d\n", rand() % 50);

Où est le lien entre le rand et srand? Ce que je veux dire ou attendre je suppose rand() permettra d'obtenir un certain nombre de paramètres de srand() de sorte qu'il sait pour générer des nombres différents à chaque fois. Je suppose qu'il ressemblerait à quelque chose comme rand(srand(time(null));

C'est comme de l'initialisation d'une variable sans l'utiliser pour moi. srand est en cours d'initialisation, mais je ne vois pas qu'il soit utilisé.

N'rand générer des numéros différents parce que srand est appelé en premier avant de rand?

Sur la ligne de commande, vous pouvez voir la documentation de ces fonctions en tapant man 3 rand et man 3 srand.

OriginalL'auteur Arrow | 2014-01-22