What value the rear and front counter of an Array implementation of Queue start with? -1 or 0 or 1?
Most implementations of a Queue use front to point to the head element of the queue and rear to point to the first empty element at the rear of the queue:

front       rear
v            v
[1][2][3][4][ ][ ]


Your implementation has them pointing one element previous.

To change your code to work like this would be a matter of change front/rear to start at 0 and then reversing your increment/read:

void Enqueue(int value)
{
    if(rear&lt;SIZE-1)
    {
        queue[rear] = value;
        ++rear;
    }
    else
    {
        printf("Queue overflow!\n");
    }
}


Review:

Your IsEmpty function has the side effect of resetting the queue. The name does not reflect this; it sounds like it should be merely checking whether the queue is empty. There's not really anything wrong with that. Pragmatically, such an operation should be transparent. However, I'd put a comment in there describing the side effect.

You could also implement a circularly linked queue in which you insert elements in a (conceptual) ring. Basically, when you get to the end of the array, you start inserting at the begining again. However, this means that when front = back the buffer could be full or empty. Just check rear + 1 to see if it's empty.

Oh, and please spell "queue" and its varients correctly...it's really bugging me :)