In this example we will see the use of parallel construct with private and firstprivate clauses. At the end of the program i and j remain undefined as these are private to thread in parallel construct.
int i, j;
i = 1;
j = 2;
#pragma omp parallel private(i) firstprivate(j)
i = 3;
j = j + 2;
printf("%d %d\n", i, j); /* i and j are undefined */
In the following example, each thread in the parallel region decides what part of the global array x to work on, based on the thread number.