+ <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>>
+
+ <item*|function call>An expression containing the <strong|function> name
+ followed by the function call operator \P<cpp|()>\Q.
+