Jump to content

Comma operator

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by EdC~enwiki (talk | contribs) at 22:58, 15 July 2007 (Created page with 'In the C programming language, the '''comma operator''' (represented by the token <code>,</code>) is a binary operator that discards its first operand a...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

In the C programming language, the comma operator (represented by the token ,) is a binary operator that discards its first operand and has the value (and type) of its second operand. The comma operator has the lowest precedence of any C operator, and acts as a sequence point.

The use of the comma token as an operator is distinct from its use as a separator in function calls and definitions, variable declarations, enum declarations, etc.

Because the comma operator discards its first operand, it is generally only useful where the first operand has desirable side effects, such as in the initialiser or increment statement of a for loop. For example, the following terse linked list loop detection algorithm:

bool loops(List *list)
{
    List *l1, *l2;
    for (l1 = l2 = list; l2 && (l2 = l2->next); l1 = l1->next, l2 = l2->next)
        if (l1 == l2)
            return true;
    return false;
}