(c = getchar())
    Andrew Koenig 
    ark at alice.UUCP
       
    Thu Dec 15 13:16:40 AEST 1988
    
    
  
In article <1786 at dataio.Data-IO.COM>, bright at Data-IO.COM (Walter Bright) writes:
-> If c is of type char, then:
-> 	(c = getchar())
-> is equivalent to:
-> 	(int)(c = (char) getchar())
-> What's happening is that the rvalue (getchar()) is cast to be the same
-> type as the lvalue (c). The value of the assignment expression is the
-> value of (c) after the integral promotions are performed, i.e. after (c)
-> is converted to an int. Thus, the int result of getchar() was truncated to
-> be a char and then promoted back to an int, in the process losing anything
-> that was in the bits beyond the char.
Indeed.
At least that's what's supposed to happen.  Sometimes other things
happen, though.  See page 70 of ``C Traps and Pitfalls'' for details.
-- 
				--Andrew Koenig
				  ark at europa.att.com
    
    
More information about the Comp.lang.c
mailing list