+ <cpp|\\x0A> is the <em|newline> character)<rsup|<reference|ref
+ includehelp-oct-hex>>.
+
+ <item*|<cpp|\\0>>Represents the <em|null> character (i.e. a <cpp|char>
+ with value <cpp|0>)<\footnote>
+ See <hlinkv|https://www.geeksforgeeks.org/difference-between-null-pointer-null-character-0-and-0-in-c-with-examples/>.
+ </footnote>
+ </description-aligned>
+
+ <label|term_expression><item*|expression> A sequence of
+ <strong|operators> and <strong|operands> that specify a computation. When
+ evaluated, an expression may perform useful side effects (e.g.
+ <cpp|printf("%d", 4)> sends the character <cpp|4> to \ the standard
+ output stream)<\footnote>
+ See <hlinkv|https://en.cppreference.com/w/c/language/expressions>.
+ </footnote>.
+
+ Arrangements of expressions may include<\footnote>
+ See <hlinkv|https://www.educative.io/answers/what-are-expressions-in-c>.
+ </footnote>:
+
+ <\description>
+ <item*|Constant>A value with no operator is used<\footnote>
+ See <hlinkv|https://www.cs.miami.edu/home/burt/learning/Math120.1/Notes/exp-syn.html>.
+ </footnote>. (e.g. the \P<cpp|0>\Q in <cpp|return 0;>)
+
+ <item*|Variable identifier>A variable evaluated earlier. (e.g. the 2nd
+ \P<cpp|k>\Q in <hgroup|<cpp|k = 1; return k;>>)
+
+ <item*|Infix expression>Operator is used between operands. (e.g. <cpp|a
+ = x + y>)
+
+ <item*|Postfix expression>Operator is used after the operands. (e.g.
+ <cpp|xy+>)
+
+ <item*|Prefix expression>Operator is used before the operands. (e.g.
+ <cpp|+xy>)
+
+ <item*|Unary expression>There is one operator and one operand. (e.g.
+ <cpp|x++>)
+
+ <item*|Binary expression>There is one operator and two operands. (e.g.
+ <cpp|x+y>)
+ </description>
+
+ Types of expressions may include:
+
+ <\description>
+ <item*|Arithmetic expression>Consists of arithmetic operators (<cpp|+,
+ -, *, and />) and computes values of <cpp|int, float, or double> type.
+
+ <item*|Relational expression>Usually uses comparison operators
+ (<cpp|\<gtr\>, \<less\>, \<gtr\>=, \<less\>=, ===, and !==>) and
+ computers answer in the <cpp|bool> type (i.e. true \P<cpp|1>\Q or false
+ \P<cpp|0>\Q).
+
+ <item*|Logical expression>Consists of logical operators (<cpp|&&, \|\|,
+ and !>) and combines relational expressions to compute answers in the
+ <cpp|bool> type.
+
+ <item*|Conditional expression>Consists of statements that return
+ <cpp|true> if the condition is met or <cpp|false> otherwise.
+
+ <item*|Pointer expression>May consist of an ampersand (<cpp|&>)
+ operator and returns <cpp|address> values.
+
+ <item*|Bitwise expression>Consists of bitwise operators
+ (<cpp|\<gtr\>\<gtr\>, \<less\>\<less\>, ~, &, \|, and ^>) and performs
+ operations at the bit level.
+
+ <item*|Constant expression>Involves only constants such that the
+ expression may be evaluated during compilation rather than
+ run-time<\footnote>
+ K&R 2nd Ed., Sec. 2.3 \PConstants\Q.
+ </footnote>.
+ </description>
+
+ <label|term_function><item*|function>A group of statements that perform a
+ task. Is defined using a function <strong|definition> that has a
+ parenthesized list of <strong|declarations> called <strong|parameters>
+ (e.g. variables for accepting values named <strong|arguments> as input
+ when the <strong|function> is called). A function definition has the
+ form:
+
+ <em|<\indent>
+ return-type<space|1em>function-name(parameter declarations, if any) {
+
+ <space|1em>declarations
+
+ <space|1em>statements
+
+ }
+ </indent>>
+
+ <label|term_function_call><item*|function call>An expression containing
+ the <strong|function> name followed by the function call operator
+ \P<cpp|()>\Q.
+
+ <label|term_function_prototype><item*|function prototype>A declaration of
+ a <strong|function> consisting only of the function name (a.k.a.
+ \Pidentifier\Q) and parenthesized <strong|parameter> types so the
+ compiler knows how to perform <strong|type>-based conversions of
+ <strong|arguments> (e.g. truncating a <cpp|float> into an <cpp|int>) in
+ <strong|calls> of the function before the compiler knows the function
+ <strong|definition><\footnote>
+ See <hlinkv|https://en.cppreference.com/w/c/language/function_declaration>.
+ </footnote>. The function prototype parameter names do not have to agree
+ with the function definition parameter names<\footnote>
+ K&R 2nd Ed., Sec 1.7 \PFunctions\Q.
+ </footnote>.