diff --git a/c.texi b/c.texi index b8f5850..08f0d9e 100644 --- a/c.texi +++ b/c.texi @@ -2776,7 +2776,7 @@ again @samp{4}. Using @samp{++} or @samp{--} @emph{after} an lvalue does something peculiar: it gets the value directly out of the lvalue and @emph{then} -increments or decrement it. Thus, the value of @code{i++} is the same +increments or decrements it. Thus, the value of @code{i++} is the same as the value of @code{i}, but @code{i++} also increments @code{i} ``a little later.'' This is called @dfn{postincrement} or @dfn{postdecrement}. @@ -2999,10 +2999,10 @@ if (r && x % r == 0) @end example @noindent -A truth value is simply a number, so @code{r} -as a truth value tests whether it is nonzero. -But @code{r}'s meaning is not a truth value---it is a number to divide by. -So it is better style to write the explicit @code{!= 0}. +A truth value is simply a number, so using @code{r} as a truth value +tests whether it is nonzero. But @code{r}'s meaning as en expression +is not a truth value---it is a number to divide by. So it is better +style to write the explicit @code{!= 0}. Here's another equivalent way to write it: @@ -3021,7 +3021,7 @@ There are cases where assignments nested inside the condition can actually make a program @emph{easier} to read. Here is an example using a hypothetical type @code{list} which represents a list; it tests whether the list has at least two links, using hypothetical -functions, @code{nonempty} which is true of the argument is a nonempty +functions, @code{nonempty} which is true if the argument is a nonempty list, and @code{list_next} which advances from one list link to the next. We assume that a list is never a null pointer, so that the assignment expressions are always ``true.'' @@ -3035,8 +3035,8 @@ if (nonempty (list) @end example @noindent -Here we get the benefit of the @samp{&&} operator, to avoid executing -the rest of the code if a call to @code{nonempty} says ``false.'' The +Here we take advantage of the @samp{&&} operator to avoid executing +the rest of the code if a call to @code{nonempty} returns ``false.'' The only natural place to put the assignments is among those calls. It would be possible to rewrite this as several statements, but that @@ -3071,7 +3071,7 @@ to compute and get the value from. It looks like this: @end menu @node Conditional Rules -@subsection Rules for Conditional Operator +@subsection Rules for the Conditional Operator The first operand, @var{condition}, should be a value that can be compared with zero---a number or a pointer. If it is true (nonzero), @@ -3147,7 +3147,7 @@ next_element () ? : default_pointer @noindent is a way to advance the pointer and use its new value if it isn't -null, but use @code{default_pointer} if that is null. We must not do +null, but use @code{default_pointer} if that is null. We cannot do it this way, @example @@ -3155,7 +3155,7 @@ next_element () ? next_element () : default_pointer @end example @noindent -because it would advance the pointer a second time. +because that would advance the pointer a second time. @node Comma Operator @section Comma Operator @@ -3243,7 +3243,7 @@ which uses the comma operator and passes just one argument (with value 6). @strong{Warning:} don't use the comma operator around an argument -of a function unless it helps understand the code. When you do so, +of a function unless it makes the code more readable. When you do so, don't put part of another argument on the same line. Instead, add a line break to make the parentheses around the comma operator easier to see, like this.