Index
Symbols
- flag, output specifier,, 2nd, 3rd
-- operator
see decrement operator (--)
- operator,
! (NOT) logical operator, –2nd
operator precedence,
when not to use,
# character
see hash (#) character
% character
see percent (%) character
% operator,
& (address of) operator
see address of (&) operator
& bitwise operator,
&& (AND) logical operator, –2nd
* character
see also indirection operator (*)
see also multiplication operator (*)
input format specifiers,, 2nd
. operator,
/ divide operator,
?: conditional operator, –2nd
character
see backslash () character
^ character
bitwise operator,, 2nd
specifying delimiters,
string to include only specified characters,
| bitwise operator,, 2nd
|| (OR) logical operator,
~ bitwise operator,, 2nd
+ flag, output specifier,, 2nd, 3rd
+ operator,
++ operator
see increment operator (++)
< (less than) operator,, 2nd
<< bitwise operator,, 2nd
<= (less than or equal to) operator,
= operator
see assignment (=) operator
= = operator
see equal to (= =) operator
> (greater than) operator,, 2nd
-> operator,
!= (not equal to) operator,
>= (greater than or equal to) operator,
>> bitwise operator,, 2nd
Numerics
0 flag, output specifier,, 2nd
1’s complement,, 2nd
2’s complement,
8-bit binary values,
A
a (a) escape sequence,, 2nd, 3rd, 4th
a mode,, 2nd
a+ mode,
ab mode,, 2nd
ab+ (a+b) mode,, 2nd, 3rd
abort function,
using assert macro,
absolute values
fabs function,
acos function,
addition operator
+= shortcut,
arithmetic operators,
complex number formula for,
addnode function,
address of (&) operator,, 2nd –3rd
accessing structure members,
arrays of structures,
arrays,
initializing variable pointer,
omitting the &,
referencing pointer address,, 2nd
scanf function,, 2nd, 3rd
addresses
adding integer value to pointers,
long int type, –2nd
array names referring to addresses, –2nd
arrays, –2nd
bytes,
memory addresses,
pointers,, 2nd
why addresses vary at different times,
alert escape sequence,, 2nd, 3rd, 4th
alphabetic characters
function testing for,, 2nd
alphanumeric characters
function testing for,, 2nd
wide character strings,
ampersand (&) character
see also address of (&) operator
& bitwise operator,
&& (AND) logical operator, –2nd
AND (&&) logical operator, –2nd
AND (&) bitwise operator,
masks,
anonymous unions,
append mode
reading strings from text files,
writing to text files,
append operations
appending strings, –2nd
opening text files for,
arguments for functions,
control strings,
description,
function parameters,, 2nd
function pointers as, –2nd
global variables replacing,
pass-by-value mechanism, –2nd
passing arguments and return value,
passing arguments to functions,, 2nd
passing parameters to main(),, 2nd
pointers to structures as, –2nd, 3rd –4th
printf function,
strings as macro arguments, –2nd
structures as, –2nd, 3rd –4th
using ordinary variables as, –2nd
using pointers as, –2nd
const keyword, –2nd
variable number of arguments, –2nd
basic rules and requirements,
prototyping,
referencing arguments,
sentinel value,
va_list type,, 2nd
arithmetic comparisons, –2nd
arithmetic expressions, –2nd
arithmetic operations
binary arithmetic operations,
implicit type conversion,
performing on char data type,, 2nd –3rd
arithmetic operators, –2nd
addition,
division,
modulus,
multiplication,
operator order of precedence,
subtraction,
table of,
working with complex numbers,
arithmetic statements, –2nd
arithmetic assignment statement,
arrays, –2nd
accessing array elements, –2nd
pointer expressions for,
accessing elements of,
adding integer value to pointers,
long int type, –2nd
addresses, –2nd
array names referring to addresses, –2nd
arrays as union members,
arrays of function pointers, –2nd
arrays of pointers, –2nd
arrays of strings, –2nd
arrays of structures, –2nd
averaging numbers with arrays, –2nd
benefits of programming with arrays,
changing address referenced by array name,
char arrays wasting memory,
declaring,
description, –2nd, 3rd
dimension,
element numbering,
finding size of arrays, –2nd
formatted input from arrays,
formatted output to arrays, –2nd
getting all values in 2D array, –2nd
index value,
initializing,
multidimensional arrays, –2nd
multidimensional arrays, –2nd
organization of arrays in memory,
pointers and, –2nd
multidimensional arrays, –2nd
two-dimensional arrays, –2nd
referencing,
retrieving elements in array, –2nd
sprintf function, –2nd
sscanf function,
storing strings,
tic-tac-toe game, –2nd
ASCII character code values, –2nd
asin function,
assert macro, –2nd
assert.h header file,
assignment (=) operator,
confusing with equal to (= =) operator,
copying strings,
description,
implicit type conversions in, –2nd
operator order of precedence,
shortcuts (+=, -=, *=, /=, %=),, 2nd
associativity
operator precedence,
asterisk (*) character
see also indirection operator (*)
see also multiplication operator
input format specifiers,, 2nd
at mode,
atan function,
atof/atoi/atol functions,, 2nd
calculator program using pointers (atof),, 2nd
atoll function,
automatic type conversion
see implicit type conversion
automatic variables
declaration,, 2nd
description,, 2nd
scope,
average
calculating average of values, –2nd, 3rd –4th
averaging numbers with arrays, –2nd
average function
example using functions,
function declarations,, 2nd
pass-by-value example,
referencing variable number of arguments, –2nd
B
b () escape sequence,, 2nd, 3rd
backslash () character
basic C syntax,
escape sequence for,, 2nd, 3rd
escape sequence to insert,
file path string,
significance in text strings,
backspace
escape sequence for,, 2nd, 3rd
bar chart
drawing vertical bar chart, –2nd
basic input/output system (BIOS),
beep escape sequence,, 2nd, 3rd, 4th
best_move function,
big-endian system, –2nd
binary arithmetic operations,
binary files
see under files
binary mode
binary file input and output, –2nd
specifying,
text mode compared,, 2nd
binary numbers, –2nd
1’s complement,
2’s complement,
adding binary values,
negative binary numbers, –2nd
values in decimal and hexadecimal,
binary operators,
binary streams,
binary trees, –2nd
creating, –2nd
left node,
nodes,
ordering data in,
right node,
root node,
sorting data using, –2nd
traversing, –2nd
BIOS (basic input/output system),
bit patterns
char data type,
hexadecimal constants,
unsigned char type,
bits,, 2nd
bit-fields in structures, –2nd
decimal equivalents of 8-bit binary values,
memory addresses,
sign bit,
bitwise operators, –2nd
logical operators and,
masks,, 2nd –3rd
op= form,
operator order of precedence,
selecting multiple bits from variables, –2nd
table of,
using, –2nd
blank characters
function testing for,, 2nd
wide character strings,
body
function body,, 2nd
defining function inside,
_Bool keyword,
bool type,
_Bool variable
expressions involving comparison operators,
if (something) expression,
memory-test game program,
operands of AND (&&) operator,
operands of OR (||) operator,
Boolean data type,
Boolean expressions,
boundary alignment,
effect on memory allocation,
boxes
drawing a box, –2nd
braces {}
basic C syntax,
function body,
functions and,
indenting,
break statement
for loop, –2nd
nested loops and goto statement,
switch statement,, 2nd
breakpoints, setting,
bubble sort,
buffers
buffered input operations illustrated,
fflush function,, 2nd
file-viewer program,
fputc function,
input and output,
keyboard buffer,
reading binary files,, 2nd, 3rd
reading text of arbitrary length from keyboard,
stderr/stdout streams compared,
writing to text files,
bugs
see debugging
Build option,
built-in functions,
bytes,, 2nd
addresses,
big-endian system,
computer affecting bytes used,
little-endian system,
memory used storing variables,
sizeof operator,
determining bytes occupied,
C
c conversion type
char as character and integer,
character output with printf function,
input format specifiers,, 2nd, 3rd
output format specifiers,, 2nd
performing arithmetic on char type,
reading characters using scanf(),
wide character conversion,
c extension,
c flag,
C programs
see also programming basics
basic syntax,
creating, –2nd
developing, –2nd
using empty functions in,
editing, –2nd
elements of, –2nd
ending, –2nd
indenting braces,
outputting information, –2nd
reserved words,
stages in creation of,
substitutions in source code, –2nd
calculator
writing program using pointers, –2nd
writing simple program, –2nd
calloc function,
carriage return
escape sequence for,, 2nd, 3rd, 4th, 5th
case
converting uppercase to lowercase, –2nd, 3rd –4th
case statement
see switch statement
casting,
Boolean data type,
explicit type conversion,
imaginary values to complex type,
indirection operator (*),
CD-ROM drives
input and output streams,
ceil function,
change function
using ordinary variables as arguments, –2nd
using pointers as arguments,
char array
arrays of strings,
searching strings for specified character,
char data type, –2nd
a character or an integer,
arrays of strings, –2nd
char arrays wasting memory,
character constant,
common function return types,
comparison operators comparing,
conversion between uppercase and lowercase,
finding length of string,
getchar function,
hexadecimal value for,
initializing with integer value,
input conversion characters,
input format specifiers,
input with scanf function,
numeric data types,
output conversion characters,
output format specifiers,
output with printf function,
performing arithmetic on,, 2nd –3rd
pointer to char variable type,
putchar function,
range limits for,
reading characters using scanf(),
string and text handling methods,
CHAR_MIN/CHAR_MAX
range limits for integer types,
character constant,
L modifier,
character data types
char data type, –2nd
wchar_t data type, –2nd
character streams,
formatted output to screen, –2nd
getchar function, –2nd
reading character from keyboard without displaying,
characters
ASCII character code values,, 2nd
character classification functions,
character conversion functions, –2nd
control characters, –2nd
end-of-file character,
finding length of string,
input and output, –2nd
searching strings
for specified character, –2nd
wide character strings,
testing and converting wide characters, –2nd
whitespace characters,
wide character classification functions,
wide character strings, –2nd
check function
reading binary files,
cimag/cimagf/cimagl functions
complex numbers,
circle
calculating circumference and area,
clock ticks,
clock function,
memory-test game program,, 2nd
using time functions,
clock, processor clock,
clock_t type,, 2nd
CLOCKS_PER_SEC symbol,, 2nd
code
see source code
code portability
size_t integer type,
comma operators
operator order of precedence,
command line
running C program,
comments, –2nd
need for,
comparing strings, –2nd
comparison operators,, 2nd –3rd
!= (not equal to) operator,
< (less than) operator,
<= (less than or equal to) operator,
> (greater than) operator,
>= (greater than or equal to) operator,
= = (equal to) operator,
else-if statement, –2nd
expressions involving,
if statement, –2nd
nested ifs, –2nd
if-else statement, –2nd
logical expressions,
operator order of precedence,
comparisons
arithmetic comparisons, –2nd
conditional operator, –2nd
logical operators combining, –2nd
with AND (&&) operator, –2nd
with NOT (!) operator, –2nd
with OR (||) operator,
compilation time
recording when program last compiled,
compilers
description,
determining bytes occupied by numeric types,
determining range limits for data types,
header files,
list of errors,
compiling
creating C program,
source code,
complement operator,
complex numbers, –2nd
_Complex keyword,, 2nd
_Complex_I keyword,
_Imaginary keyword,
casting imaginary values to complex type,
cimag function,
cimagf function,
cimagl function,
complex equivalent of _Complex,
conj function,
conjf function,
conjl function,
creal function,
crealf function,
creall function,
data types,
imaginary equivalent of _Imaginary,
polar representation,
types storing,
working with, –2nd
complex.h header file,, 2nd
exploring contents of,
function types included in,
computer_move function,, 2nd
conditional compilation
logical preprocessor directives, –2nd
conditional operator, –2nd
nested example,
operator order of precedence,
conio.h header file,
conj/conjf/conjl functions
complex numbers,
conjugate operator
complex number formula for,
const keyword
const parameters, –2nd
fixing variable as constant value,
pointers to structures as function arguments,
using pointers,
wide character strings,
constant expression,
constants
#define preprocessor directive,
character constant,
constant pointers,, 2nd
defining,
defining standard messages,
fixing variable value,
pointers to constants,
pointers to constants and constant pointers compared,
range limits for floating-point types,
range limits for integer types,, 2nd
specifying integer constants, –2nd
continuation condition
for loop,
continue statement,
control characters, –2nd
see also escape sequences
function testing for,, 2nd
wide character strings,
control expressions
for loop,, 2nd
control strings
see format control strings/format specifiers
conversion characters/types
description,
input,, 2nd, 3rd
output,, 2nd
conversion flags
output format specifiers,
conversion specifiers,
see also format control strings/format specifiers
conversions
explicit type,
implicit type, –2nd
copying strings using strcpy function,
copying strings using strncpy function,
cos/cosh functions,
creal/crealf/creall function
complex numbers,
createnode function,
ctime function,
ctype.h header file,, 2nd, 3rd, 4th
examining strings,
function types included in,
writing calculator program using pointers,
curly brackets {}
see braces {}
current position
files,
rewind function,
D
d conversion type,
accessing values through pointers,
adding integer value to pointers,
char as character and integer,
character output with printf function,
hd format specifier,
input format specifiers,, 2nd
ld format specifier,, 2nd
output format specifiers,, 2nd
outputting two-character field,
performing arithmetic on char type,
reading data,
reading hexadecimal and octal values,
data
improving speed of data transfer,
ordering data in binary tree,
sorting data using binary tree, –2nd
structuring data, –2nd
data types
see also types
char, –2nd
clock_t,
complex, –2nd, 3rd
defining, –2nd
double _Complex,
float _Complex,
floating-point,
fpos_t,
integer, –2nd
long double _Complex,
numeric, –2nd
pointers,
single statement declaring multiple variables,
sizeof operator determining bytes occupied by,
time_t,
tm structure,
unsigned integer, –2nd
va_list,
variable declaration,
wchar_t data, –2nd
__DATE__ macro,
date and time
clock function,
ctime function,
difftime function,
function library, –2nd
getting the date, –2nd
getting the day for a date,
gmtime function,
localtime function,, 2nd
mktime function,
recording when program last compiled,
using time functions, –2nd
DBL_DIG,
DBL_MIN/DBL_MAX,
debugging, –2nd
description,
inspecting program elements,
integrated debuggers,
setting breakpoints,
setting watches,
tracing program flow,
using preprocessing in, –2nd
decimals
see floating-point numbers
decision making in programs
description,
else-if statement, –2nd
goto statement, –2nd
if statement, –2nd
if-else statement, –2nd
switch statement, –2nd
declarations
declaring pointers, –2nd
function declarations, –2nd
variable declaration,
decrement operator (--), –2nd
description,
varying use of loop counter,
default keyword
switch statement,
#define preprocessor directive,
#if defined directive, –2nd
joining two results of a macro expansion,
macro substitutions,
macros that look like functions, –2nd
strings as macro arguments, –2nd
substitutions in program source code, –2nd
using in debugging,
delimiters
^ character specifying,
dereference operator
see indirection operator (*)
dereferenced pointers,, 2nd
dereferencing NULL pointer,
designing C programs,
calculating tree height program,
developing C programs, –2nd
see also program examples
difftime function,
DIG values
decimal digits for floating-point types,
digits (0-9)
counting digits entered from keyboard,
function testing for,
wide character strings,
digits (0-9, A-F hex)
function testing for,, 2nd
wide character strings,
dimension, arrays,
directives
see preprocessor directives
discounts, calculating
using if-else statement,
using nested conditional operators,
disk drives
input and output streams,
division
floating-point variables, –2nd
specifying decimal places,
specifying output field width,
using float variable type,
division by zero
calculator program example,
division operator,
complex number formula for,
example demonstrating, –2nd
/= shortcut,
negative operand(s),
do-while loop, –2nd
memory-test game program,, 2nd
reversing digits of integer example, –2nd
tic-tac-toe game,
typical usage,
double _Complex type,, 2nd
double _Imaginary type,, 2nd
double precision floating-point numbers,
double quotes
escape sequence for,, 2nd
string constants,
double variable type,
atof function,
common function return types,
format specifier for,
implicit type conversion rules,
input type conversion modifiers,
range limits for,
doubly linked list
pointers to structures as structure members, –2nd
duplicatefile function,
updating exiting file,
dynamic memory allocation, –2nd
allocating small amounts of memory,
calculating prime numbers, –2nd
calloc function,
checking memory available,
free function, –2nd
guidelines for working with memory,
malloc function, –2nd
memory leak,
reallocating memory, –2nd
releasing memory, –2nd, 3rd
sizeof operator,
structures, –2nd
E
E conversion type,, 2nd
exponential for floating-point values,, 2nd
e conversion type,, 2nd
input format specifiers,
le format specifier,
output format specifiers,
reading data,
variations on floating-point input,
eatspaces function,
editing source code
editing simple C program, –2nd
emacs editor for Windows,
programming basics, –2nd
UNIX/Linux,
using word processors,
elements
inspecting program elements,
elements, arrays
addresses,
description,
initializing,
numbering,
pointer expressions for accessing,
referencing,
retrieving elements in array, –2nd
#elif preprocessor directive,
ellipsis
prototyping functions,
#else preprocessor directive, –2nd
else keyword
else-if statement, –2nd
if-else statement, –2nd
emacs editor,
#endif preprocessor directive,
using in debugging,, 2nd
ending programs, –2nd
end-of-file character,
enum keyword,
enumeration constants,
enumeration type,
enumerations, –2nd
controlling switch statement with,
integer types,
unnamed enumeration types,
enumerators,
choosing enumerator values,
EOF character,
feof function,
writing and reading files,
EOR bitwise operator,, 2nd
equal to (= =) operator,
comparing strings,
complex numbers,
confusing with assignment (=) operator,
error messages
stderr stream,
errors,, 2nd –3rd
see also debugging
common mistakes,
executing programs,
feof function,
ferror function,
missing semicolon (;),
perror function,
escape sequences, –2nd
see also control characters
\,
',
",
?,
a,, 2nd
,
f,
,, 2nd
,
,
v,
alert,, 2nd
backslash, inserting in text string,
backspace,
beep,, 2nd
carriage return,
description,
double quote,
form-feed,
horizontal tab,
newline,, 2nd
null character,
printf()/wprintf(), –2nd
question mark,
quotation marks,
significance of character in text strings,
single quote,
strings,
vertical tab,
exe extension,
executing C program,
executing programs
creating C program,
errors created when,
programming basics,
start point for program execution,
exit function,, 2nd
dealing with errors,
exp function,
explicit type conversion,
exponents
floating-point numbers,
floating-point values,
output conversion characters,
output format specifiers,
variations on floating-point input,
expressions
return values, functions,
structures in expressions,
extern keyword,
external devices
using as memory,
external files
including header files in programs,
F
f (f) escape sequence,
common escape sequences,
writing to printers,
F conversion type,
f conversion type,, 2nd, 3rd
calculating circumference/area of circle,
float constant,
input format specifiers,
lf format specifier,
output format specifiers,
pass-by-value example,
reading data,
variations on floating-point input,
fabs function,
factorial function,, 2nd
factorials
calculating factorial of integer, –2nd
fclose function,, 2nd
feof function,, 2nd, 3rd
ferror function,
fflush function,, 2nd, 3rd
switching from read to write,
updating binary files,
fgetc function,
fgetpos function,
fgets function,, 2nd, 3rd
character conversion example,
gets() compared,
random access to files,
reading strings,
reading strings from text files,
reading text of arbitrary length from keyboard,, 2nd, 3rd
sorting strings using pointers,, 2nd
writing calculator program using pointers,
fgetws function,, 2nd
field width
input format specifiers,
output format specifiers,
specifying in floating-point division,
file modes,
file path string
escaping backslash characters,
file pointers,, 2nd, 3rd
FILE structure,
file-viewer
writing file-viewer program, –2nd
FILENAME_MAX,
files
accessing, –2nd
accessing data in files, –2nd
random access to file, –2nd
binary files,
changing file contents,
how data written in,
input and output, –2nd
listing contents, –2nd
mode specifiers,, 2nd
reading, –2nd, 3rd
reading record from keyboard, –2nd
reading record from file, –2nd
updating, –2nd, 3rd
updating existing file contents, –2nd
writing, –2nd, 3rd –4th, 5th
writing record to file, –2nd
closing,
creating unique file name, –2nd
current position,
dealing with errors, –2nd
deleting,
EOF character,
functions
duplicatefile,, 2nd
fclose,
feof,
ferror,
fflush,
fgetc,
fgetpos,
fgets,
findrecord,, 2nd, 3rd
fopen, –2nd
fprintf,
fputc, –2nd
fputs, –2nd
fscanf,
fseek, –2nd
fsetpos,
ftell,
getname,, 2nd
getrecord,, 2nd –3rd
listfile,, 2nd –3rd
perror,
readrecord,, 2nd –3rd
remove,
rename,
rewind,
updatefile, –2nd
writefile,, 2nd –3rd
writerecord,, 2nd –3rd
file positioning operations, –2nd
file streams,
FILENAME_MAX,
FOPEN_MAX,
formatted input from, –2nd
formatted output to,, 2nd –3rd
introduction,
mode specifiers, –2nd, 3rd
moving around in, –2nd
open files limit,, 2nd
opening, –2nd
call to fopen() fails,
limit to length of filename,
read/write/append operations,
position in,
renaming,
structure illustrated,
temporary work files, –2nd
text files,
reading from, –2nd
reading strings from, –2nd
writing strings to, –2nd
writing to, –2nd
using as memory,
findrecord function,
updating exiting file,, 2nd
flags
output format specifiers,
float _Complex type,, 2nd
float _Imaginary type,, 2nd
float constant
suffix specifying,
float conversion characters,
float variable type,
common function return types,
division using,
format specifier for,
implicit type conversion rules,
input conversion characters,
range limits for,
range of values for,
float.h header file,, 2nd
floating-point numbers/variables,, 2nd –3rd
%e format specifier,
%f format specifier,
accessing decimal digits for,
decimal notation,
8-bit binary values,
division using, –2nd
specifying decimal places,
specifying output field width,
exponentials,, 2nd
left-aligned output,
output conversion characters,
output flags,
output format specifiers,
outputting values, –2nd
precision,
range limits for,
values for,
values in binary and hexadecimal,
variations on input, –2nd
floor function,
FLT_DIG value,
FLT_MIN/FLT_MAX,
flushing
see fflush function
fopen function, –2nd
call to fopen() fails,
file modes,
reading binary files,
return value,
writing and reading files,
FOPEN_MAX,
for loop, –2nd, 3rd –4th, 5th –6th
averaging numbers with arrays,
break statement in, –2nd
calculating average of values example, –2nd
character conversion,, 2nd
continuation condition,
continue statement,
control expressions,, 2nd
calculation in third control expression, –2nd
floating-point loop control variables,
example drawing box, –2nd
increment operator (++),
indefinite looping,
limiting user input example, –2nd
loop counter,
varying use of, –2nd, 3rd –4th
memory-test game program,
postfix increment operator,, 2nd
prefix increment operator,
retrieving elements in array,
summing numbers, –2nd
using nested for loop, –2nd
using while loop nested inside, –2nd
syntax,
tic-tac-toe game,
typical usage,
without parameters,
format control strings/format specifiers
% character,
always displaying +/- sign,
characters in input format string, –2nd
display floating-point values,
format control string,
general form of,
input conversion characters,
input format control strings, –2nd
input format specifiers,, 2nd –3rd
integer conversion specifiers,
left-aligned output,
output conversion characters,
output format specifiers, –2nd, 3rd –4th
placing characters in square brackets,
printf/wprintf functions,, 2nd
reading characters using scanf(), –2nd
reading data,
reading hexadecimal and octal values, –2nd
scanf/wscanf functions, –2nd
specifying decimal places in floating-point division,
specifying output field width,
string to include only specified characters,
using wrong specifier,
variations on floating-point input, –2nd
formatted file input/output,, 2nd –3rd
form-feed
escape sequence for,, 2nd, 3rd
forward slash (/)
basic C syntax,
comments,
fpos_t type,
fprintf function
formatted output to files,
output format specifiers,
writing to printers, –2nd
fputc function, –2nd
fputs function
reading strings from text files,, 2nd
writing strings to text files, –2nd
fread function
reading binary files,
updating binary files,
free function,, 2nd –3rd
using linked lists,
freenodes function,
fscanf function,
formatted file input and output,
input format specifiers,
fseek function, –2nd
fsetpos function,, 2nd
ftell function,
function body,
defining function inside,
defining functions,
description,
functions without bodies,
function declarations
see function prototypes
function headers
defining functions,
description,
examples of,
function parameters,
function pointers, –2nd
arrays of, –2nd
as arguments, –2nd
calling functions through, –2nd
declaring, –2nd
declaring arrays of,
function prototypes
description,, 2nd
passing data to function using pointers,
reading binary files,
functions, –2nd
arguments for,
const keyword, –2nd
passing arguments to functions,, 2nd
pointers to structures as, –2nd, 3rd –4th
structures as, –2nd, 3rd –4th
using pointers, –2nd, 3rd –4th
using variables as, –2nd
variable number of, –2nd
built-in functions,
calling,
character classification functions,
character conversion functions, –2nd
converting strings to numerical values,, 2nd
declarations, –2nd
defining,
description,, 2nd
empty functions,
example using, –2nd
execution of program made up of several,
external variables and, –2nd
functions not returning values,
functions operating on wide character strings,
functions that call themselves, –2nd
general form of,, 2nd
hyperbolic functions,
incrementing pointers in,
inline functions,
interfaces for,
inverse trigonometric functions,
libraries of,, 2nd –3rd
macros that look like, –2nd
maintaining variable within declared scope, –2nd
mathematical functions, –2nd
modular programming and, –2nd
naming conventions,
not protecting original values passed to,, 2nd –3rd
parameters,, 2nd
pass-by-value mechanism, –2nd
performance, –2nd
pointers to functions
see function pointers
protecting original values passed to,, 2nd –3rd
passing pointers, –2nd
prototyping using ellipsis,
recursive function calls, –2nd
restrict keyword,
return statement,, 2nd –3rd
return value type,
specifying, –2nd
return values,, 2nd
structures as, –2nd
returning pointer values from functions, –2nd
using local storage, –2nd
sharing variables between, –2nd
string functions, –2nd
time functions, –2nd
trigonometric functions,
variable scope,
variables in functions, –2nd
wide character classification functions,
functions, list of
abort,
acos,
addnode,
asin,
atan,
atof/atoi/atol/atoll,
average,, 2nd, 3rd
best_move,
calloc,
ceil function,
change function,
check function,
cimag/cimagf/cimagl,
complex numbers,
conj/conjf/conjl,
clock,, 2nd
computer_move,, 2nd
cos/cosh,
creal/crealf/creall,
createnode,
ctime,
difftime,
display,, 2nd
duplicatefile,, 2nd
eatspaces,
exit,, 2nd
exp,
fabs,
factorial,
fclose,
feof,
ferror,
fflush,, 2nd, 3rd
fgetc,
fgetpos,
fgets,, 2nd, 3rd
fgetws,
findrecord,, 2nd, 3rd
floor,
fopen, –2nd
fprintf, –2nd, 3rd
fputc, –2nd
fputs, –2nd
fread,
free, –2nd
freenodes,
fscanf,
fseek, –2nd
fsetpos,
ftell,
fwrite, –2nd
get_parent_dob,, 2nd
get_person, –2nd
get_score,
getc,
getch,
getchar,, 2nd –3rd
getinteger,, 2nd
getname,, 2nd, 3rd
getrecord,, 2nd –3rd
gets,, 2nd –3rd
gmtime,
IncomePlus,
isalnum/isalpha/isblank/iscntrl,
isdigit/isgraph/islower,
isnewline,
isprint/ispunct/isspace/isupper,
iswalnum/iswblank/iswcntrl/iswdigit,
iswgraph/iswlower/iswprint/iswpunct,
iswspace/iswupper/iswxdigit,
isxdigit,
listfile,, 2nd –3rd
listnodes,
localtime,, 2nd
log/log10,
main, –2nd, 3rd –4th
make_move,
malloc, –2nd
mktime,, 2nd
perror,
pow,
printf,
product,
put_primes,, 2nd, 3rd
putc,
putchar,
puts, –2nd
rand, –2nd
readrecord,, 2nd –3rd
realloc, –2nd
related,
remove,
rename,
rewind,
scanf,, 2nd –3rd
set_ancestry,, 2nd
siblings,, 2nd
sin/sinh,
sprintf, –2nd
sqrt,
srand,
sscanf,
str_in, –2nd
str_out,
str_sort, –2nd
strcat, –2nd
strchr, –2nd
strcmp, –2nd
strcpy,
strlen,, 2nd
strncat,
strncmp,
strncpy,
strrchr,
strstr, –2nd
swap, –2nd
tan/tanh,
test_prime,, 2nd, 3rd
time,, 2nd
tmpnam,
tolower/toupper,
towlower/towupper,
ungetc,
updatefile, –2nd
va_arg/va_end/va_start,
valid_moves,
wcscat/wcschr/wcscmp/wcscpy,
wcslen/wcsncmp/wcsncpy/wcsstr,
wprintf,
writefile, –2nd
writerecord, –2nd
wscanf,
fwrite function
writing binary files, –2nd
G
G conversion type,, 2nd
g conversion type,
input format specifiers,
output format specifiers,
variations on floating-point input,
get_parent_dob function,, 2nd
get_person function
pointers to structures,
random access to files,
returning pointers to structures, –2nd
get_score function,
getc function,
confusing with gets(),
writing and reading files,
getch function,
getchar function,, 2nd, 3rd –4th
reading strings up to given limit,
unformatted input,
getinteger function,, 2nd
getname function,, 2nd
description,, 2nd
random access to files,
getrecord function, –2nd
description,
gets function, –2nd
confusing with getc(),
counting digits and letters entered from keyboard,
description,
disadvantage of,
drawing vertical bar chart example,
fgets() compared,
sorting strings using pointers,
writing calculator program using pointers,
gigabyte,
global scope,
global variables, –2nd
declaration position making global,, 2nd
declarations of,
extern keyword,
scope,
using sparingly,
gmtime function,
goto statement, –2nd
nested loops and, –2nd
graphs
drawing vertical bar chart, –2nd
greater than (>) operator,
comparing strings,
greater than or equal to (>=) operator,
H
h (.h) extension,
h modifier
hd format specifier,
input modifiers,, 2nd
output modifiers,, 2nd, 3rd
hash (#) character,
## operator,
# flag, output specifier,, 2nd
preceding parameter in macro expansion,
preprocessor directives,
hat size program
using multidimensional arrays, –2nd
and pointers, –2nd
header files, –2nd
assert.h,
case sensitivity,
complex.h,, 2nd
conio.h,
ctype.h,
description,
extension indicating,
float.h,
including header files in programs,
limits.h,
math.h,
NULL defined in,
stdarg.h header file,
stdbool.h,
stddef.h,
stdio.h,
stdlib.h,, 2nd
string.h,
time.h,
wchar.h,
wctype.h,
headers
function headers,, 2nd
heap,
hexadecimal constants
bit patterns,
hexadecimal form
integers,
writing file-viewer program, –2nd
hexadecimal numbers, –2nd
input conversion characters,, 2nd
output conversion characters,, 2nd
output flags,
reading hexadecimal and octal values, –2nd
values in decimal and binary,
horizontal tab
escape sequence for,, 2nd, 3rd
hyperbolic functions,
I
i conversion type
input conversion characters,
output conversion characters,
IDE (integrated development environment),
Build option,
#if defined preprocessor directive
conditional compilation, –2nd
#if preprocessor directive
conditional compilation, –2nd
directives testing for specific values,
if statement, –2nd
else-if statement, –2nd
if-else statement, –2nd
if (something) expression,
nested if statements, –2nd
tic-tac-toe game,
using blocks of code within, –2nd
#ifdef preprocessor directive,
using in debugging,, 2nd
using preprocessing in debugging,
#ifndef preprocessor directive,
_Imaginary keyword,
complex.h header file,, 2nd
imaginary values
see complex numbers
implementing C programs,
implicit type conversion, –2nd
Boolean data type,
in assignment statements, –2nd
rules for, –2nd
include files
see header files
#include preprocessor directive,, 2nd, 3rd
IncomePlus function
increment operator (++), –2nd
description,
for loop,, 2nd
postfix form,
for loop,, 2nd
while loop,
prefix form,
for loop,
while loop,
using pointers,
indefinite looping,
indentation of program code,
index value, arrays,
arrays and addresses,
multidimensional arrays,
indexes
accessing data in files,
indirection operator (*)
casting malloc() return value,
casting values,
declaring function pointer,
dereferenced pointers,, 2nd, 3rd
description,
interpreting * as multiplication or indirection,
levels of indirection,
multidimensional arrays,
pointer expressions for accessing array elements,
pointers to structures as function arguments,
two-dimensional arrays,, 2nd
using,
initializing variables, –2nd
inline functions,
input
see also read operations
binary file input and output, –2nd
characters, –2nd
scanf function,
input format specifiers,, 2nd –3rd
see also format control strings/format specifiers
input streams
characters in input format string, –2nd
description,
format control strings, –2nd
formatted input,
from arrays,
from files, –2nd
from keyboard, –2nd
getchar function, –2nd
gets function, –2nd
input from keyboards, –2nd
reading any sequence of characters,, 2nd
reading any sequence of consecutive digits,
reading characters using scanf(), –2nd
reading first non-space character,
reading hexadecimal and octal values, –2nd
scanf function,, 2nd –3rd
sscanf function,
standard and nonstandard streams,
standard streams, –2nd
string input from keyboard, –2nd
strings including spaces,
unformatted input,
from keyboard, –2nd
variations on floating-point input, –2nd
int keyword,
int variable type
atoi function,
common function return types,
format specifier for,
input conversion characters,
output conversion characters,
range limits for,
range of values,
suffix requirement,
INT_MIN/INT_MAX,
integer conversion specifiers
input format specifiers,
integers, –2nd
abbreviations,
avoiding leading zeros,
calculating factorial of, –2nd
char data type,
computer affecting bytes used,
description,
enumerations,
example using,, 2nd, 3rd
examples of integer numbers,
examples of noninteger numbers,
generating pseudo-random integers, –2nd
getinteger function,, 2nd
hexadecimal form,
implicit type conversion rules,
input format specifiers,
integer output, –2nd
integer variable types, –2nd
memory usage,
output format specifiers,
range limits for,
outputting values,
reversing digits of integer example, –2nd
size_t integer type,
specifying integer constants, –2nd
L/LL/U/UL suffixes,
summing numbers using for loop, –2nd
summing numbers using nested for loop, –2nd
summing numbers using while loop, –2nd
summing numbers using while loop nested inside for loop, –2nd
unsigned integer types, –2nd
using integer types, –2nd
integrated development environment (IDE),, 2nd
integration testing,
interfaces, functions,
inverse trigonometric functions,
isalnum function,, 2nd, 3rd
isalpha function,, 2nd
isblank/iscntrl/isdigit/isgraph/islower functions,, 2nd
isnewline function,
ISO/IEC standard libraries,
isprint function,, 2nd, 3rd, 4th
ispunct function,, 2nd
isspace function,, 2nd, 3rd
isupper function,, 2nd
iswalnum/iswblank/iswcntrl/iswdigit functions,
iswgraph/iswlower/iswprint/iswpunct functions,
iswspace/iswupper/iswxdigit functions,
isxdigit function,, 2nd
J
join() macro,
justified values, output flags,
K
keyboard buffer,
keyboards
formatted input from, –2nd
input from, –2nd
reading character from without displaying,
reading record from, –2nd
string input from, –2nd
unformatted input from, –2nd
keywords,
_Bool,
_Complex,
_Complex_I,
_Imaginary,
const,
continue,
description,
extern,
floating-point variable types,
inline,
int,
integer variable types,
list of reserved words,
long,
naming functions,
restrict,
short,
sizeof, –2nd
static,
struct,
typedef, –2nd
unsigned,
void,
kilobyte,
L
L modifier
character constants,
input modifiers,, 2nd
long double constant,
long double types,
long int constant,, 2nd
nested if example,
output modifiers,, 2nd, 3rd
unsigned long int constant,
wide character strings,, 2nd
l modifier
input modifiers,, 2nd
integer output,
ld format specifier,, 2nd
le/lf format specifiers,
output modifiers,, 2nd, 3rd
LDBL_DIG,
LDBL_MIN/LDBL_MAX,
left node, binary trees,
left-aligned output,, 2nd
left-justified values, output flags,, 2nd
less than (<) operator,
comparing strings,
less than or equal to (<=) operator,
letters
counting letters entered from keyboard,
levels of indirection,
libraries
date and time function library, –2nd
function libraries,, 2nd –3rd
header files contained in compilers,
ISO/IEC standard libraries,
linking program files,
string library functions, –2nd
lifetime, variables,
limits.h header file,, 2nd
linked list
description,
doubly linked list, –2nd
pointers to structures as structure members, –2nd
linker,
linking,, 2nd
listfile function, –2nd
description,
updating binary files,
listnodes function, binary tree,, 2nd
lists
copying va_list type,
literals
L modifier,
little-endian system, –2nd
ll modifier
input format specifiers,
input type conversion modifiers,
output format specifiers,, 2nd
output type conversion modifiers,
LL suffix
long long int constant,
LLONG_MIN/LLONG_MAX,
local storage
returning pointer values from functions using, –2nd
local variable
caution returning address of local variable,
localtime function,, 2nd
getting the date,, 2nd
getting the day for a date,, 2nd
log/log10 functions,
logical expressions,
logical operators, –2nd
AND (&&) operator, –2nd
bitwise operators and,
NOT (!) operator, –2nd
operator order of precedence,
OR (||) operator,
selection for interview example, –2nd
logical preprocessor directives, –2nd
conditional compilation, –2nd
directives testing for specific values,
multiple-choice selections, –2nd
standard preprocessing macros,
long _Complex type,
long double _Complex type,
long double _Imaginary type,, 2nd
long double constant,
long double variable type,
common function return types,
implicit type conversion rules,
input type conversion modifiers,
output type conversion modifiers,
range limits for,
range of values for,
long int constant,, 2nd
long int variable type
adding integer value to pointers, –2nd
atol function,
common function return types,
format specifier for,
input type conversion modifiers,
output type conversion modifiers,
range limits for,
range of values,
using,
long keyword,
long long int constant,
long long int variable type
atoll function,
common function return types,
input type conversion modifiers,
output type conversion modifiers,
range limits for,
range of values,
LONG_MIN/LONG_MAX,, 2nd
loop counter
for loop,, 2nd –3rd, 4th –5th
loops, –2nd
continue statement,
decrement operator (--),, 2nd –3rd
determining frequency of words in text,
do-while loop, –2nd
ending loop with
or ,
for loop, –2nd, 3rd –4th, 5th –6th
how loops work,
increment operator (++),, 2nd –3rd
indefinite looping,
memory leaks,
nested loops, –2nd
goto statement and, –2nd
recursive functions,
while loop, –2nd
lowercase
function testing for,, 2nd
wide character strings,
lowercase letters
converting upper/lower cases, –2nd, 3rd –4th
wide character strings,
M
macros
assert() macro, –2nd
join() macro,
joining two results of a macro expansion,
macro substitutions,
macros that look like functions, –2nd
multiple macro substitutions,
standard preprocessing macros,
strings as macro arguments, –2nd
main function, –2nd
calling through function pointer,
declaring function pointer,
description,, 2nd
ending programs,
example using,
example using functions,
modular programming,
passing parameters to,, 2nd, 3rd –4th
program structure,
writing file-viewer program,
make_move function,
malloc function, –2nd
casting return value,
description,
dynamic memory allocation with structures,, 2nd
memory leaks,
pointer to void variable type,
reading strings up to given limit,, 2nd
releasing memory,
returning pointers to structures,
sorting strings using pointers,
using linked lists,
writing binary files,
masks
AND bitwise operator,
bitwise operators,, 2nd
OR bitwise operator,
selecting multiple bits from a variable, –2nd
math.h header file,
function types included in,
writing calculator program using pointers,
mathematical functions, –2nd
asin/acos/atan,
ceil,
cos/cosh,
exp,
fabs,
floor,
hyperbolic functions,
inverse trigonometric functions,
log/log10,
pow,
sin/sinh,
sqrt,
tan/tanh,
trigonometric functions,
MAX values
range limits for floating-point types,
range limits for integer types,
MAXLEN,
MAXWORDS,, 2nd
megabyte,
members, structures
accessing structure members, –2nd
assigning values to members,
description,
member selection operator,
pointer to member operator,
pointers to structures as, –2nd
structures as members of structures, –2nd
structures declared within structures, –2nd
memory, –2nd, 3rd –4th
address of (&) operator, –2nd
basic input/output system (BIOS),
bits,
byte based measurements of,
bytes,
calloc function,
char arrays wasting,
dynamic memory allocation, –2nd
releasing memory, –2nd
sizeof operator,
structures, –2nd
effect of boundary alignment on allocation of,
guidelines for working with,
heap,
improving data transfer with processor,
integer variable types,
keyboard buffer,
malloc function, –2nd
memory addresses,
memory used storing variables,
multidimensional arrays,
organization of an array in,
pointers,, 2nd
random access memory (RAM),, 2nd
read-only memory (ROM),
reallocating, –2nd
sharing memory between variables, –2nd
unions, –2nd
stack,
structures,
using linked lists,
using bit-fields in structures, –2nd
using files as,
variables and,
memory leaks,, 2nd
loops,
memory-test game program, –2nd
messages
defining standard messages,
varying output message,
MIN values
range limits for floating-point types,
range limits for integer types,
minimum/maximum of variables,
minus operator
see also subtraction operator
unary minus operators,
mktime function,, 2nd
modes
file mode specification,
file modes,
text modes, –2nd
updating binary files,
modifier value, %f format specifier,
modular programming
function libraries,
functions and, –2nd
reasons for using,
testing,
modulus operator
%= shortcut,
arithmetic operators,
example demonstrating, –2nd
negative operand(s),
multidimensional arrays, –2nd
see also two-dimensional arrays
accessing array elements, –2nd
example using, –2nd
indirection operator (*),
initializing, –2nd
pointers and, –2nd
referencing arrays/subarrays/elements,
tic-tac-toe game, –2nd
multiplication operator (*),
*= shortcut,
complex number formula for,
example demonstrating, –2nd
interpreting * as multiplication or indirection,
N
n (
) escape sequence,, 2nd
common escape sequences,
example using,
printf function,
puts function,
n conversion type
input format specifiers,, 2nd
output format specifiers,
naming conventions
functions,
structures,
naming pointers,
naming variables, –2nd
automatic/static/global variables,
NDEBUG symbol,
negative binary numbers, –2nd
nested blocks,
nested if statements, –2nd
nested loops, –2nd
goto statement and, –2nd
newline character,
determining frequency of words in text,
escape sequence for,, 2nd, 3rd, 4th, 5th
including in strings,
isnewline function,
writing to printers,
nodes
binary trees,
creating, –2nd
ordering data in,
traversing, –2nd
left node,
right node,
root node,
NOT (!) logical operator, –2nd
operator precedence,
when not to use,
NOT bitwise operator,, 2nd
not equal to (!=) operator,
noughts and crosses game, –2nd
NULL,
header files defined in,
null character
affecting length of strings,
ASCII character code values,
finding length of string,
marking end of strings,
outputting a null-terminating string,
NULL pointer,
dereferencing,
header files containing definition,
testing for NULL pointer,
numbers
binary, –2nd
negative binary, –2nd
floating-point, –2nd
hexadecimal, –2nd
numeric data types, –2nd
calculating tree height program, –2nd
implicit conversion in assignment statements, –2nd
sizeof operator determining bytes occupied by,
numerical values
converting strings to,, 2nd
O
o (.o) file extension,
o conversion type
reading octal values, –2nd
input format specifiers,, 2nd
output format specifiers,, 2nd
obj (.obj) file extension,
object code,
object files,
octal numbers,
input conversion characters,
input format specifiers,
output conversion characters,
output flags,
reading hexadecimal and octal values, –2nd
op= shortcuts (&=, |=, ^=, >>=, <<=)
bitwise operators,
op= shortcuts (+=, -=, *=, /=, %=)
assignment operations, –2nd
operands,
binary arithmetic operations,
implicit type conversion rules,
operations
assignment,
file positioning, –2nd
operators
arithmetic, –2nd
assignment,
binary,
bitwise, –2nd
comparison,, 2nd –3rd
conditional, –2nd
decrement operator (--),, 2nd –3rd
dereference operator,
increment operator (++),, 2nd –3rd
logical, –2nd
AND (&&) operator, –2nd
NOT (!) operator, –2nd
OR (||) operator,
member selection operator (structures),
operator precedence, –2nd
associativity determining,
pointer to member operator,
sizeof operator, –2nd, 3rd –4th
ternary operator,
unary minus operator, –2nd
unary operator,
OR (||) logical operator,
OR bitwise operator,, 2nd
masks,
order of operator precedence, –2nd
need to understand,
Othello
see Reversi program
output
binary file input and output, –2nd
characters, –2nd
outputting two-character field,
retrieving elements in array,
varying output message,
output field width
specifying in floating-point division,
output format specifiers, –2nd, 3rd –4th
see also format control strings/format specifiers
always displaying +/- sign,
output streams
description,
formatted output to arrays, –2nd
formatted output to files, –2nd
formatted output to screen
character output, –2nd
escape sequences printf()/wprintf(), –2nd
integer output, –2nd
outputting floating-point values, –2nd
using printf(), –2nd
formatted output to screens, –2nd
fprintf function, –2nd
printf function,, 2nd, 3rd –4th
putchar function,
puts function, –2nd
sprintf function, –2nd
standard and nonstandard streams,
standard streams, –2nd
unformatted output to screen,
wprintf function, –2nd
writing to printers, –2nd
P
p conversion type
address of (&) operator,
output format specifiers,
outputting variable address,
p prefix
naming pointers,
padding with zeros
output flags,
PAGE_LENGTH,, 2nd
parameters
const parameters, –2nd
description,
function parameters,
reading binary files,
separating parameters,
multiple parameterized substitutions,
passing to main(), –2nd, 3rd, 4th
parentheses
arithmetic expressions, –2nd
declaring pointer to function,
function parameters,
operator order of precedence,
pass-by-value mechanism, –2nd, 3rd
percent (%) character
%% escape sequence,, 2nd
%[] format specifier,, 2nd, 3rd
%p format specifier,
conversion specifiers,
escape sequence for,
input format specifiers,, 2nd
output format specifiers,, 2nd, 3rd
performance
declaring inline functions,
enhancing performance, –2nd
using restrict keyword,
perror function,
placeholders,, 2nd
plural words
outputting appropriate singular/plural form,
pointer to char variable type,
pointer to member operator,
pointer to void variable type,
pointer to xyz types
common function return types,
pointers,, 2nd –3rd
accessing values through, –2nd
adding integer value to,
long int type, –2nd
address of (&) operator,
addressing multiple variables with,
array names referring to addresses, –2nd
arrays and, –2nd
accessing array elements, –2nd
multidimensional arrays, –2nd
two-dimensional arrays, –2nd
calloc function,
caution returning address of local variable,
caution uninitialized pointers,
constant pointers,
pointers to constants compared,
declaring, –2nd, 3rd –4th
dereference operator,
dereferenced pointers,
description,
determining pointer type,
dynamic memory allocation, –2nd
sizeof operator,
enhancing performance,
free function,
function pointers, –2nd
handling strings using, –2nd
reading text with more control,
using arrays of pointers, –2nd
incrementing in functions,
indirection operator (*),
initializing,, 2nd
introduction to, –2nd
levels of indirection,
malloc function, –2nd
naming,
not protecting original values passed to, –2nd
not protecting original values passed to functions,
NULL,
obtaining number of bytes occupied,
output format specifiers,
passing data to function using, –2nd
pointers to constants,
constant pointers compared,
pointers to structures,
as function arguments, –2nd, 3rd –4th
as structure members, –2nd
doubly linked list, –2nd
dynamic memory allocation, –2nd
linked list, –2nd
returning, –2nd
simplifying code using typedef,
structures as function return value, –2nd
pointers to unions,
protecting original values passed to, –2nd
releasing memory, –2nd
returning pointer values from functions, –2nd
using local storage, –2nd
searching strings for specified character,
searching strings for substrings,
searching strings for wide character,
sizeof operator,
sorting strings using, –2nd
specifying return value type,
swap function,
testing for NULL pointer,
using, –2nd
using with scanf(),
variable types,
variables,
variable/pointer relationship,
void type,
writing calculator program using, –2nd
polar representation, complex numbers,
postfix form, increment operator,
for loop,, 2nd
while loop,
pow function,
writing calculator program using pointers,
precedence
operator precedence, –2nd
precision format specifier,, 2nd
precision value, %f format specifier,
prefix form, increment operator,
for loop,
while loop,
preprocessing, –2nd
conditional compilation, –2nd
debugging, –2nd
directives testing for specific values,
duplicating blocks of code,
external variables and functions, –2nd
including header files in programs,
joining two results of a macro expansion,
macro substitutions,
macros that look like functions, –2nd
multiple macro substitutions,
standard preprocessing macros,
strings as macro arguments, –2nd
substitutions in program source code, –2nd
preprocessor directives,
#define,
#elif,
#else, –2nd
#endif,
#if, –2nd
#ifdef,
#ifndef,
#include,
#undef,
example using,
identifying,
logical preprocessor directives, –2nd
multiple lines of,
writing Reversi game program,
prime numbers
calculating, –2nd, 3rd –4th
adjustment for calloc function,
printers
fprintf function, –2nd
writing to printers, –2nd
printf function,
see also fprintf function; sprintf function; wprintf function
arguments,, 2nd
arithmetic expressions as arguments,
splitting long arguments over 2+ lines,
calculating circumference/area of circle,
calculating tree height program,
character output,
coping with mixture of types,
escape sequences, –2nd
example using,, 2nd
example using functions,, 2nd
format conversion specifiers,
format strings,
formatted output to screen, –2nd
character output, –2nd
integer output, –2nd
outputting floating-point values, –2nd
general form,
long double types,
output format specifiers,
output streams,
parameters,
specifying floating-point decimal places,
specifying floating-point field width,
string constants,
printing characters
function testing for,, 2nd
wide character strings,
processor clock,
product function,
program elements, inspecting,
program examples
calculating average of values, –2nd, 3rd –4th
averaging numbers with arrays, –2nd
calculating circumference/area of circle, –2nd
calculating discounted prices, –2nd
calculating factorial of integer, –2nd
calculating hat size, –2nd
using multidimensional arrays and pointers, –2nd
calculating prime numbers, –2nd, 3rd –4th
adjustment for calloc function,
calculating tree height, –2nd
calculator, –2nd
using pointers, –2nd
converting uppercase to lowercase, –2nd, 3rd –4th
counting digits and letters entered from keyboard,
determining frequency of words in text,, 2nd –3rd
dividing cookies equally among children, –2nd
drawing box, –2nd
drawing vertical bar chart, –2nd
file-viewer, –2nd
limiting user input, –2nd
memory-test game, –2nd
noughts and crosses game, –2nd
reading text of arbitrary length from keyboard, –2nd
reading/writing/updating binary file, –2nd
recording when program last compiled,
Reversi, –2nd
reversing digits of integer, –2nd
selection by criteria, –2nd
Simple Simon program, –2nd
summing numbers
for loop, –2nd
nested for loop, –2nd
while loop, –2nd
while loop nested inside for loop, –2nd
tic-tac-toe game, –2nd
using pointers, –2nd
program flow, tracing,
program libraries
see libraries
program structure, –2nd
execution of multi function program,
variable scope, –2nd
programming basics
see also C programs
approaching the problem,
Build option,
compiling source code,
decision making,
multiple-choice questions,
editing source code, –2nd
word processors,
exe extension,
executing programs,
indentation of program code,
integrated development environment,
linking,
looping,
modular programming, –2nd
pointers,
running program from command line,
source code,
structured programming,
pseudo-random numbers,
punctuation characters
determining frequency of words in text,, 2nd
function testing for,, 2nd
wide character strings,
put_primes function,, 2nd, 3rd
putc function,, 2nd
putchar function,
puts function, –2nd
Q
question mark
escape sequence for,
quotation marks
escape sequences for,
R
r (
) escape sequence,
common escape sequences,
memory-test game program,, 2nd
writing to printers,
r mode,, 2nd, 3rd, 4th
r+ (r+t)(rt+) text mode,, 2nd
RAM (random access memory),, 2nd
rand function, –2nd
memory-test game program,, 2nd
seed number,
setting limits,
using in random macro,
RAND_MAX,, 2nd
random numbers,
generating pseudo-random integers, –2nd
random() macro,, 2nd
range limits
floating-point types,
integer types,, 2nd
variable types and value ranges,
rb mode,, 2nd
rb+ (r+b) mode,, 2nd, 3rd
read operations
see also input
format specifiers,
from text files, –2nd
opening text files for,
prefixing variable name with &,
strings from text files, –2nd
read-only memory (ROM),
readrecord function,, 2nd –3rd, 4th
realloc function, –2nd
records
listing file contents, –2nd
reading record from file, –2nd
reading record from keyboard, –2nd
updating existing file contents, –2nd
writing record to file, –2nd
recursion, –2nd
related function
pointers to structures,
prototype,
relational operators
see comparison operators
remainder operator
see modulus operator
remove function,, 2nd
rename function,
repeating statements
see loops
reserved words
see keywords
restrict keyword,
return statement,, 2nd –3rd
return types,
return value type,
specifying, –2nd
return values,
caution returning address of local variable,
description,
expressions,
functions not returning values,
global variables replacing,
passing arguments and return value,
structures as function return value, –2nd
Reversi program, –2nd
basic logic,
best_move function,
computer_move function,, 2nd
display function,, 2nd
get_score function,
make_move function,
starting position and initial moves in,
tasks in the program,
valid_moves function,
rewind function,, 2nd
right node, binary trees,
right-justified values, output flags,
ROM (read-only memory),
root node, binary trees,, 2nd
rt text mode,
S
S conversion type
output format specifiers,
wide character strings,
s conversion type
input format specifiers,, 2nd
output format specifiers,, 2nd
outputting null-terminating string,
outputting singular/plural form,
reading characters using scanf(),
scanf function, –2nd
see also sscanf function
accessing structure members,
arrays of structures,
address of (&) operator,, 2nd, 3rd
arguments,, 2nd
calculating circumference/area of circle,
calculating tree height program,
cause of error stopping input,
character input,
characters in input format string, –2nd
common mistakes using,
comparing strings,
description,
example using functions,, 2nd
format control string parameter,
format control strings, –2nd
whitespace characters in,
format specifier,
formatted input,, 2nd
ignoring characters,
input format specifiers,
input streams,
invalid characters in input stream,
keyboard buffer,
problem reading strings with,
prototype,
reading characters, –2nd
reading hexadecimal and octal values, –2nd
reading multiple data items,
reading strings,, 2nd
return value,
using pointers with scanf(),
variable/pointer relationship,
variations on floating-point input, –2nd
writing calculator program using pointers,
wscanf function,
scope
automatic variables,
global scope,
global variables,
static variables,, 2nd
structures declared within structures, –2nd
variable scope, –2nd
screens
formatted output to, –2nd
character output, –2nd
escape sequences, –2nd
integer output, –2nd
outputting floating-point values, –2nd
using printf(), –2nd
unformatted output to,
searching strings, –2nd
for substrings, –2nd
strchr function, –2nd
strrchr function,
seed number
memory-test game program,
rand function,
SEEK_CUR/SEEK_END/SEEK_SET,
semicolon (;)
basic C syntax,
common syntax errors,
variable declarations,, 2nd
sentinel value,
set_ancestry function,, 2nd
shift bitwise operators,, 2nd
short int type
choosing correct type for variables,
common function return types,
format specifier for,
input type conversion modifiers,
output type conversion modifiers,
range limits for,
range of values,
using,
short keyword,
shortcuts (&=, |=, ^=, >>=, <<=)
bitwise operators,
shortcuts (+=, -=, *=, /=, %=)
assignment operations, –2nd
SHRT_MIN/SHRT_MAX,
siblings function,, 2nd
sign bit,
signed char variable type,
signed numbers,
signed values, output flags,
similar triangles,
Simple Simon program, –2nd
sin function,
single precision floating-point numbers,
single quote
escape sequence for,
singular words
outputting appropriate singular/plural form,
sinh function,
size_flag format specifier
input format specifiers,
output format specifiers,
size_t integer type,
calculating prime numbers,
finding length of string,
sizeof operator, –2nd
bytes occupied by numeric types,
dynamic memory allocation,
with structures,
finding size of arrays, –2nd
joining strings,
pointers,
reading strings from text files,
writing binary files,
slashes (/ and )
basic C syntax,
sorting data
using binary tree, –2nd
source code,, 2nd
duplicating blocks of code,
substitutions in, –2nd
source file,
space character/flag
output format specifiers,, 2nd
spaces
isspace function,
specifiers
see also format control strings/format specifiers
conversion specifier,
format specifier,
input format specifiers,, 2nd –3rd
output format specifiers, –2nd, 3rd –4th
sprintf function
formatted output to arrays, –2nd
output format specifiers,
updating binary files,
sqrt function,, 2nd
srand function,
memory-test game program,, 2nd
using preprocessor directives,
sscanf function,
input format specifiers,
stacks,
standard streams, –2nd
statements
arithmetic assignment,
arithmetic statements, –2nd
continue statement,
execution of multi function program,
function declarations,
nested blocks,
return statement, –2nd
static keyword,
static variables, –2nd, 3rd
stdarg.h header file,, 2nd
stdaux stream,
stdbool.h header file,, 2nd
function types included in,
stddef.h header file,
stderr stream,, 2nd –3rd
stdin stream,
see also getchar function; gets function; scanf function; wscanf function
associated device,
changing source,
fflush function,
input from keyboards, –2nd
stdio.h header file,, 2nd
description,
example using,
function types included in,
scanf function,
standard streams,
stdlib.h header file,, 2nd, 3rd
converting strings to numerical values,
function types included in,
writing calculator program using pointers,
stdout stream
associated device,
description,
formatted output to screens, –2nd
reassigning,
stderr stream compared,
stdprn stream,
str_in function, –2nd
passing data to function using pointers,
returning pointers,, 2nd
str_out function,
incrementing pointers in functions,
passing data to function using pointers,
str_sort function, –2nd
passing data to function using pointers,
strcat function, –2nd
dealing with errors,
strchr function, –2nd
strcmp function
comparing strings, –2nd
determining frequency of words in text,
sorting strings using pointers,
writing calculator program using pointers,
strcpy function
copying strings using,
determining frequency of words in text,
sorting strings using pointers,
stream pointers
file pointers,, 2nd, 3rd
streams
binary streams,
character streams,
file streams,
input streams,, 2nd –3rd
limit to open streams,
nonstandard streams,
output streams,, 2nd –3rd
standard streams, –2nd
stdaux,
stderr,
stdin,
stdout,
stdprn,
string constants,
string data type
how C deals with strings,
string functions, –2nd
string.h header file,
function types included in,
searching strings, –2nd
string library functions,
strings
appending, –2nd
wide character strings,
arrays of, –2nd
as macro arguments, –2nd
character conversion functions, –2nd
comparing, –2nd
wide character strings,
converting to numerical values,, 2nd
copying
using strcpy(),
using strncpy(),
wide character strings,
defining standard messages,
examples of strings in memory,
finding length of,
strlen function,, 2nd
wide character strings,
handling, –2nd
using arrays of pointers, –2nd
using pointers, –2nd
input conversion characters,, 2nd
joining, –2nd
strcat function, –2nd
strncat function,
length of,
marking end of,
output conversion characters,, 2nd
outputting null-terminating string,
outputting singular/plural form,
reading characters using scanf(),
reading
fgets function,
from text files, –2nd
gets function, –2nd
scanf function,
up to given limit, –2nd
searching, –2nd
for specified character, –2nd
for substrings, –2nd
wide character strings,
sorting using pointers, –2nd
storing in arrays,
text handling methods, –2nd
using assignment operator to copy,
varying output message,
wide character strings, –2nd
functions operating on,
writing strings to text files, –2nd, 3rd –4th
strlen function,
finding length of string,
sorting strings using pointers,
writing and reading files,
writing calculator program using pointers,
strncat function,
strncmp function,
strncpy function,
strrchr function,
strstr function, –2nd, 3rd, 4th
struct type, –2nd
allocating memory dynamically, –2nd
arrays of structures, –2nd
binary tree nodes,
common function return types,
creating binary tree, –2nd
declaring structures within structures, –2nd
defining data types, –2nd
defining structure types,
defining structure variables,
defining unnamed structures,
pointers to structures as structure members, –2nd
unions as members of structures,
using pointers,
using structures within structures, –2nd
using typedef, –2nd
structure members
accessing, –2nd
assigning values to,
arrays of structures, –2nd
dynamic memory allocation, –2nd
individual members,
structures in expressions,
description,
member selection operator,
pointers to structures as, –2nd
doubly linked list, –2nd
linked list, –2nd
structures as members of structures, –2nd
structures declared within structures, –2nd
unions as members of structures, –2nd
structured programming,
structures
arrays of, –2nd
as function arguments, –2nd, 3rd –4th
as function return value, –2nd
as union members,
binary trees, –2nd
bit-fields in, –2nd
defining structure types,
defining structure variables,
defining using struct, –2nd
drawing vertical bar chart example, –2nd
dynamic memory allocation for, –2nd
naming conventions,
pointers to,
as function arguments, –2nd, 3rd –4th
dynamic memory allocation, –2nd
returning pointers to structures, –2nd
structure tag,
structures in expressions,
tm structure type,
typedef and, –2nd
unnamed structures,
subarrays, referencing,
subnodes,
substitutions
macro substitutions,
multiple macro substitutions,
multiple parameterized substitutions,
substitutions in program source code, –2nd
substrings
searching strings for, –2nd
subtraction operator
-= shortcut,
arithmetic operators,
example demonstrating, –2nd
summing numbers example
summing integers backwards,
using for loop, –2nd
using nested for loop, –2nd
using while loop, –2nd
nested inside for loop, –2nd
swap function,, 2nd –3rd
switch statement, –2nd
break statement,, 2nd
calculator program example,
controlling with enumeration,
default keyword,
writing calculator program using pointers,, 2nd
T
t ( ) escape sequence,
common escape sequences,
example using,
tab
escape sequence for,, 2nd, 3rd
vertical tab,
tag name
struct type,
tan/tanh functions,
temporary work files, –2nd
creating unique file name, –2nd
ternary operator,
test_prime function,, 2nd, 3rd
testing
debugging,
functions without bodies,
inspecting program elements,
integration testing,
modular programming,
setting breakpoints,
setting watches,
tracing program flow,
text
arbitrary length input from keyboard, –2nd
text files
see files
text mode, –2nd
binary mode compared,, 2nd
text streams
see character streams
text strings
significance of character,
string and text handling methods, –2nd
TEXTLEN,
tic-tac-toe game, –2nd
using pointers, –2nd
time
see date and time
__TIME__ macro,
time function library
date and time function library, –2nd
time function,, 2nd, 3rd
memory-test game program,
time.h header file,, 2nd
time_t type,
tm structure type,, 2nd
getting date,, 2nd
getting the day for a date,, 2nd, 3rd
mmembers structures,
TMP_MAX,
tmpnam function,
tolower function,, 2nd, 3rd
toupper function,, 2nd, 3rd
towlower function,, 2nd
towupper function,, 2nd, 3rd, 4th
tracing program flow,
trailing zeros, output flags,
trees
binary trees, –2nd
triangles
similar triangles,
trigonometric functions,
two-dimensional arrays
see also multidimensional arrays
accessing array elements, –2nd
getting all values in, –2nd
indirection operator (*),, 2nd
pointers and, –2nd
referencing arrays,
tic-tac-toe game using pointers, –2nd
type conversions
see also format control strings/format specifiers
explicit type conversion,
implicit type conversion, –2nd
input format specifiers,, 2nd, 3rd
output format specifiers,, 2nd
typedef keyword
defining data types, –2nd
drawing vertical bar chart example,
simplifying code using,
structures and, –2nd
types
see also data types
choosing correct type for variables, –2nd
common function return types,
defining structure types,
specifying return value type, –2nd
U
U conversion type,
u conversion type,
input format specifiers,, 2nd
output format specifiers,, 2nd
UCHAR_MAX/UINT_MAX,
ULLONG_MAX/ULONG_MAX,
unary minus operators, –2nd
unary operators,, 2nd
#undef preprocessor directive,
enabling/disabling assertions,
underscores (_)
naming variables,
unformatted input,
ungetc function, –2nd
unions
anonymous unions,
basic operation of, –2nd
initializing,
pointers to,
sharing memory between variables, –2nd
structures/arrays as union members,
syntax for declaring,
unions as members of structures, –2nd
unsigned char variable type,
unsigned int constant,
unsigned int variable type
common function return types,
input conversion characters,
input format specifiers,
output conversion characters,
output format specifiers,
range of values,
unsigned integer types, –2nd
%u format specifier,
implicit type conversion rules,
range limits for integer types,
unsigned keyword,
unsigned long int constant,, 2nd
unsigned long int variable type,
unsigned long long int variable type,
unsigned short int variable type,
update modes
writing to binary files, –2nd
writing to text files,, 2nd
updatefile function, –2nd
uppercase letters
converting upper/lower cases, –2nd, 3rd –4th
function testing for,, 2nd
wide character strings,
users
limiting user input example, –2nd
USHRT_MAX,
V
v (v) escape sequence,
va_arg function,, 2nd
referencing variable number of arguments,, 2nd
va_end function,
copying va_list type,
referencing variable number of arguments,, 2nd
va_list type,, 2nd
copying,
va_start function,
referencing variable number of arguments,, 2nd
valid_moves function,
values
accessing through pointers, –2nd
defining constants,
floating-point values,
variable argument start
referencing variable number of arguments,
variable declarations
data types,
declaring variables and pointers, –2nd
description,
example using integers,
implicit declarations,
single statement declaring multiple variables,
variable name,
variable scope, –2nd
variable types
defining structures using struct, –2nd
pointer to char variable type,
pointers,
variables
accessing values through pointers, –2nd
arithmetic statements, –2nd
automatic variables,, 2nd
choosing correct type for, –2nd
defining structure variables,
description,
enumerations, –2nd
explicit type conversion,
external variables and functions, –2nd
fixing as constant value,
floating-point variables,
global variables, –2nd
initializing, –2nd
integer variable types, –2nd
integers, –2nd
lifetime,
maintaining within declared scope, –2nd
memory used storing,
minimum/maximum of,
naming, –2nd
case sensitivity,
keywords,
number of characters in name,
using underscores (_),
pointers,, 2nd
sharing memory between, –2nd
sharing between functions, –2nd
sizeof operator determining bytes occupied,
static variables, –2nd
storing Boolean values,
storing integers, –2nd
storing numbers, –2nd
using, –2nd
variable types and value ranges,
variables in functions, –2nd
vertical bar chart, drawing, –2nd
vertical tab
escape sequence for,
void keyword, main(),
void types
common function return types,
functions not returning values,
functions returning values,
pointers,, 2nd
return statement,
specifying return value type,
W
w mode,, 2nd
w+ (w+t)(wt+) text mode,, 2nd
watches, setting,
wb mode,, 2nd
wb+ (w+b) mode,
updating binary files,, 2nd, 3rd
writing binary files,
wchar.h header file,, 2nd –3rd
wchar_t data type, –2nd, 3rd –4th, 5th
wcscat/wcschr/wcscmp/wcscpy functions,
wcslen/wcsncmp/wcsncpy functions,
wcsstr function,, 2nd
wctype.h header file,, 2nd, 3rd
while loop, –2nd
do-while loop, –2nd
ending loop with
or ,
finding length of string,
memory-test game program,
postfix increment operator (++),
prefix increment operator (++),
summing numbers examples, –2nd
nested inside for loop, –2nd
typical usage,
whitespace
function testing for,, 2nd
wide character strings,
input format specifiers,, 2nd
isspace function,
whitespace characters,
wide character strings, –2nd
classification functions,
fgetws function,
functions operating on,
L modifier,
testing and converting, –2nd
width format specifier
input format specifiers,
output format specifiers,
width value, %f format specifier,
word processors
editing source code with,
WORDLEN,, 2nd
words
determining frequency in text,, 2nd –3rd
list of reserved words,
wprintf function
see also printf function
escape sequences, –2nd
format conversion specifiers,
formatted output to screen,
character output, –2nd
write operations
see also output
opening text files for,
writefile function,, 2nd –3rd
writerecord function,, 2nd –3rd
writing strings to text files, –2nd
writing to text files, –2nd
wscanf function,
format control strings, –2nd
wt text mode,
X
X conversion type
input format specifiers,, 2nd
output format specifiers,, 2nd
x conversion type
char as hexadecimal value,
input format specifiers,, 2nd
output format specifiers,, 2nd
reading hexadecimal values, –2nd
Z
zero
division by,
leading zeros,, 2nd
padding with zeros,, 2nd
trailing zeros,