Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

C++ How to Program 10th Edition Deitel

Solutions Manual
Visit to download the full and correct content document: https://testbankdeal.com/dow
nload/c-how-to-program-10th-edition-deitel-solutions-manual/
cpphtp10_08.fm Page 1 Wednesday, August 3, 2016 4:28 PM

Pointers 8
Objectives
In this chapter you’ll:
■ Learn what pointers are.
■ Declare and initialize
pointers.
■ Use the address (&) and
indirection (*) pointer
operators.
■ Learn the similarities and
differences between pointers
and references.
■ Use pointers to pass
arguments to functions by
reference.
■ Use built-in arrays.
■ Use const with pointers.
■ Use operator sizeof to
determine the number of
bytes that store a value of a
particular type.
■ Understand pointer
expressions and pointer
arithmetic.
■ Understand the close
relationships between
pointers and built-in arrays.
■ Use pointer-based strings.
■ Use C++11 capabilities,
including nullptr and
Standard Library functions
begin and end.
cpphtp10_08.fm Page 2 Wednesday, August 3, 2016 4:28 PM

2 Chapter 8 Pointers

Self-Review Exercises
8.1 Answer each of the following:
a) A pointer is a variable that contains as its value the of another variable.
ANS: address.
b) A pointer should be initialized to or .
ANS: nullptr, an address.
c) The only integer that can be assigned directly to a pointer is .
ANS: 0.
8.2 State whether each of the following is true or false. If the answer is false, explain why.
a) The address operator & can be applied only to constants and to expressions.
ANS: False. The operand of the address operator must be an lvalue; the address operator
cannot be applied to literals or to expressions that result in temporary values.
b) A pointer that is declared to be of type void* can be dereferenced.
ANS: False. A pointer to void cannot be dereferenced. Such a pointer does not have a type
that enables the compiler to determine the type of the data and the number of bytes
of memory to which the pointer points.
c) A pointer of one type can’t be assigned to one of another type without a cast operation.
ANS: False. Pointers of any type can be assigned to void pointers. Pointers of type void can
be assigned to pointers of other types only with an explicit type cast.
8.3 For each of the following, write C++ statements that perform the specified task. Assume
that double-precision, floating-point numbers are stored in eight bytes and that the starting address
of the built-in array is at location 1002500 in memory. Each part of the exercise should use the re-
sults of previous parts where appropriate.
a) Declare a built-in array of type double called numbers with 10 elements, and initialize
the elements to the values 0.0, 1.1, 2.2, …, 9.9. Assume that the constant size has
been defined as 10.
ANS: double numbers[size]{0.0, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9};
b) Declare a pointer nPtr that points to a variable of type double.
ANS: double* nPtr;
c) Use a for statement to display the elements of built-in array numbers using array sub-
script notation. Display each number with one digit to the right of the decimal point.
ANS: cout << fixed << showpoint << setprecision(1);
for (size_t i{0}; i < size; ++i) {
cout << numbers[i] << ' ';
}
d) Write two separate statements that each assign the starting address of built-in array num-
bers to the pointer variable nPtr.
ANS: nPtr = numbers;
nPtr = &numbers[0];
e) Use a for statement to display the elements of built-in array numbers using pointer/off-
set notation with pointer nPtr.
ANS: cout << fixed << showpoint << setprecision(1);
for (size_t j{0}; j < size; ++j) {
cout << *(nPtr + j) << ' ';
}
cpphtp10_08.fm Page 3 Wednesday, August 3, 2016 4:28 PM

Self-Review Exercises 3

f) Use a for statement to display the elements of built-in array numbers using pointer/off-
set notation with the built-in array’s name as the pointer.
ANS: cout << fixed << showpoint << setprecision(1);
for (size_t k{0}; k < size; ++k) {
cout << *(numbers + k) << ' ';
}
g) Use a for statement to display the elements of built-in array numbers using pointer/sub-
script notation with pointer nPtr.
ANS: cout << fixed << showpoint << setprecision(1);
for (size_t m{0}; m < size; ++m) {
cout << nPtr[m] << ' ';
}
h) Refer to the fourth element of built-in array numbers using array subscript notation,
pointer/offset notation with the built-in array’s name as the pointer, pointer subscript
notation with nPtr and pointer/offset notation with nPtr.
ANS: numbers[3]
*(numbers + 3)
nPtr[3]
*(nPtr + 3)
i) Assuming that nPtr points to the beginning of built-in array numbers, what address is
referenced by nPtr + 8? What value is stored at that location?
ANS: The address is 1002500 + 8 * 8 = 1002564. The value is 8.8.
j) Assuming that nPtr points to numbers[5], what address is referenced by nPtr after nPtr
-= 4 is executed? What’s the value stored at that location?
ANS: The address of numbers[5] is 1002500 + 5 * 8 = 1002540.
The address of nPtr -= 4 is 1002540 - 4 * 8 = 1002508.
The value at that location is 1.1.
8.4 For each of the following, write a statement that performs the specified task. Assume that dou-
ble variables number1 and number2 have been declared and that number1 has been initialized to 7.3.
a) Declare the variable doublePtr to be a pointer to an object of type double and initialize
the pointer to nullptr.
ANS: double* doublePtr{nullptr};
b) Assign the address of variable number1 to pointer variable doublePtr.
ANS: doublePtr = &number1;
c) Display the value of the object pointed to by doublePtr.
ANS: cout << "The value of *fPtr is " << *doublePtr << endl;
d) Assign the value of the object pointed to by doublePtr to variable number2.
ANS: number2 = *doublePtr;
e) Display the value of number2.
ANS: cout << "The value of number2 is " << number2 << endl;
f) Display the address of number1.
ANS: cout << "The address of number1 is " << &number1 << endl;
g) Display the address stored in doublePtr. Is the address the same as that of number1?
ANS: cout << "The address stored in fPtr is " << doublePtr << endl;
Yes, the value is the same.
8.5 Perform the task specified by each of the following statements:
a) Write the function header for a function called exchange that takes two pointers to dou-
ble-precision, floating-point numbers x and y as parameters and does not return a value.
ANS: void exchange(double* x, double* y)
cpphtp10_08.fm Page 4 Wednesday, August 3, 2016 4:28 PM

4 Chapter 8 Pointers

b) Write the function prototype without parameter names for the function in part (a).
ANS: void exchange(double*, double*);
c) Write two statements that each initialize the built-in array of chars named vowel with
the string of vowels, "AEIOU".
ANS: char vowel[]{"AEIOU"};
char vowel[]{'A', 'E', 'I', 'O', 'U', '\0'};

8.6 Find the error in each of the following program segments. Assume the following declara-
tions and statements:
int* zPtr; // zPtr will reference built-in array z
int number;
int z[5]{1, 2, 3, 4, 5};

a) ++zPtr;
ANS: Error: zPtr has not been initialized.
Correction: Initialize zPtr with zPtr = z; (Parts b–e depend on this correction.)
b) // use pointer to get first value of a built-in array
number = zPtr;
ANS: Error: The pointer is not dereferenced.
Correction: Change the statement to number = *zPtr;
c) // assign built-in array element 2 (the value 3) to number
number = *zPtr[2];
ANS: Error: zPtr[2] is not a pointer and should not be dereferenced.
Correction: Change *zPtr[2] to zPtr[2].
d) // display entire built-in array z
for (size_t i{0}; i <= 5; ++i) {
cout << zPtr[i] << endl;
}
ANS: Error: Referring to an out-of-bounds built-in array element with pointer subscript-
ing.
Correction: To prevent this, change the relational operator in the for statement to <
or change the 5 to a 4.
e) ++z;
ANS: Error: Trying to modify a built-in array’s name with pointer arithmetic.
Correction: Use a pointer variable instead of the built-in array’s name to accomplish
pointer arithmetic, or subscript the built-in array’s name to refer to a specific element.

Exercises
8.7 (True or False) State whether the following are true or false. If false, explain why.
a) Two pointers that point to different built-in arrays cannot be compared meaningfully.
ANS: True.
b) Because the name of a built-in array is implicitly convertible to a pointer to the first el-
ement of the built-in array, built-in array names can be manipulated in the same man-
ner as pointers.
ANS: False. An array name cannot be modified to point to a different location in memory
because an array name is a constant pointer to the first element of the array.
8.8 (Write C++ Statements) For each of the following, write C++ statements that perform the
specified task. Assume that unsigned integers are stored in four bytes and that the starting address
of the built-in array is at location 1002500 in memory.
cpphtp10_08.fm Page 5 Wednesday, August 3, 2016 4:28 PM

Exercises 5

a) Declare an unsigned int built-in array values with five elements initialized to the even
integers from 2 to 10. Assume that the constant size has been defined as 5.
ANS: unsigned int values[SIZE]{2, 4, 6, 8, 10};
b) Declare a pointer vPtr that points to an object of type unsigned int.
ANS: unsigned int* vPtr;
c) Use a for statement to display the elements of built-in array values using array sub-
script notation.
ANS: for (int i{0}; i < SIZE; ++i) {
cout << setw(4) << values[i];
}
d) Write two separate statements that assign the starting address of built-in array values
to pointer variable vPtr.
ANS: vPtr = values; and vPtr = &values[0];
e) Use a for statement to display the elements of built-in array values using pointer/offset
notation.
ANS: for (int i{0}; i < SIZE; ++i) {
cout << setw(4) << *(vPtr + i);
}
f) Use a for statement to display the elements of built-in array values using pointer/offset
notation with the built-in array’s name as the pointer.
ANS: for (int i{0}; i < SIZE; ++i) {
cout << setw(4) << *(values + i);
}
g) Use a for statement to display the elements of built-in array values by subscripting the
pointer to the built-in array.
ANS: for (int i{0}; i < SIZE; ++i) {
cout << setw(4) << vPtr[i];
}
h) Refer to the fifth element of values using array subscript notation, pointer/offset nota-
tion with the built-in array name’s as the pointer, pointer subscript notation and point-
er/offset notation.
ANS: values[4], *(values + 4), vPtr[4], *(vPtr + 4)
i) What address is referenced by vPtr + 3? What value is stored at that location?
ANS: The address of the location pertaining to values[3] (i.e., 1002506). 8.
j) Assuming that vPtr points to values[4], what address is referenced by vPtr -= 4? What
value is stored at that location?
ANS: The address of where values begins in memory (i.e., 1002500). 2.
8.9 (Write C++ Statements) For each of the following, write a single statement that performs
the specified task. Assume that long variables value1 and value2 have been declared and value1 has
been initialized to 200000.
a) Declare the variable longPtr to be a pointer to an object of type long.
ANS: long* longPtr;
b) Assign the address of variable value1 to pointer variable longPtr.
ANS: longPtr = &value1;
c) Display the value of the object pointed to by longPtr.
ANS: cout << *longPtr << '\n';
d) Assign the value of the object pointed to by longPtr to variable value2.
ANS: value2 = *longPtr;
e) Display the value of value2.
ANS: cout << value2 << '\n';
f) Display the address of value1.
ANS: cout << &value1 << '\n';
cpphtp10_08.fm Page 6 Wednesday, August 3, 2016 4:28 PM

6 Chapter 8 Pointers

g) Display the address stored in longPtr. Is the address displayed the same as value1’s?
ANS: cout << longPtr << '\n'; yes.
8.10 (Function Headers and Prototypes) Perform the task in each of the following:
a) Write the function header for function zero that takes a long integer built-in array
parameter bigIntegers and a second parameter representing the array’s size and does
not return a value.
ANS: void zero(long bigIntegers[], unsigned int size) or
void zero(long *bigIntegers, unsigned int size)
b) Write the function prototype for the function in part (a).
ANS: void zero(long bigIntegers[], unsigned int size); or
void zero(long *bigIntegers, unsigned int size);
c) Write the function header for function add1AndSum that takes an integer built-in array
parameter oneTooSmall and a second parameter representing the array’s size and returns
an integer.
ANS: int add1AndSum(int oneTooSmall[], unsigned int size) or
int add1AndSum(int *oneTooSmall, unsigned int size)
d) Write the function prototype for the function described in part (c).
ANS: int add1AndSum(int oneTooSmall[], unsigned int size); or
int add1AndSum(int *oneTooSmall, unsigned int size);

8.11 (Find the Code Errors) Find the error in each of the following segments. If the error can be
corrected, explain how.
a) int* number;
cout << number << endl;
ANS: Pointer number does not "point" to a valid address—assigning a valid address of an
int to number would correct this the problem. Also, number is not dereferenced in the
output statement.
b) double* realPtr;
long* integerPtr;
integerPtr = realPtr;
ANS: A pointer of type double cannot be directly assigned to a pointer of type long.
c) int* x, y;
x = y;
ANS: Variable y is not a pointer, and therefore cannot be assigned to x. Change the assign-
ment statement to x = &y; or declare y as a pointer.
d) char s[]{"this is a character array"};
for (; *s != '\0'; ++s) {
cout << *s << ' ';
}
ANS: s is not a modifiable value. Attempting to use operator ++ is a syntax error. Changing
to [] notation corrects the problem as in:
for (int t{0}; s[t] != '\0'; ++t)
cout << s[t] << ' ';
e) short* numPtr, result;
void* genericPtr{numPtr};
result = *genericPtr + 7;
ANS: A void * pointer cannot be dereferenced.
cpphtp10_08.fm Page 7 Wednesday, August 3, 2016 4:28 PM

Exercises 7

f) double x = 19.34;
double xPtr{&x};
cout << xPtr << endl;
ANS: xPtr is not a pointer and therefore cannot be assigned an address. Change xPtr’s type
to double* to correct the problem. The cout statement display’s the address to which
xPtr points (once the previous correction is made)—this is not an error, but normally
you’d output the value of what the pointer points to, not the address stored in the
pointer.
8.13 (What Does This Code Do?) What does this program do?

1 // Ex. 8.13: ex08_13.cpp


2 // What does this program do?
3 #include <iostream>
4 using namespace std;
5
6 void mystery1(char*, const char*); // prototype
7
8 int main() {
9 char string1[80];
10 char string2[80];
11
12 cout << "Enter two strings: ";
13 cin >> string1 >> string2;
14 mystery1(string1, string2);
15 cout << string1 << endl;
16 }
17
18 // What does this function do?
19 void mystery1(char* s1, const char* s2) {
20 while (*s1 != '\0') {
21 ++s1;
22 }
23
24 for (; (*s1 = *s2); ++s1, ++s2) {
25 ; // empty statement
26 }
27 }

Fig. 8.1 | What does this program do?

ANS:

Enter two strings: string1 string2


string1string2
cpphtp10_08.fm Page 8 Wednesday, August 3, 2016 4:28 PM

8 Chapter 8 Pointers

8.14 (What Does This Code Do?) What does this program do?

1 // Ex. 8.14: ex08_14.cpp


2 // What does this program do?
3 #include <iostream>
4 using namespace std;
5
6 int mystery2(const char*); // prototype
7
8 int main() {
9 char string1[80];
10
11 cout << "Enter a string: ";
12 cin >> string1;
13 cout << mystery2(string1) << endl;
14 }
15
16 // What does this function do?
17 int mystery2(const char* s) {
18 unsigned int x;
19
20 for (x = 0; *s != '\0'; ++s) {
21 ++x;
22 }
23
24 return x;
25 }

Fig. 8.2 | What does this program do?

ANS:

Enter a string: length


6

Special Section: Building Your Own Computer


In the next several problems, we take a temporary diversion away from the world of high-level-lan-
guage programming. We “peel open” a simple hypothetical computer and look at its internal struc-
ture. We introduce machine-language programming and write several machine-language programs.
To make this an especially valuable experience, we then build a computer (using software-based
simulation) on which you can execute your machine-language programs!1
8.15 (Machine-Language Programming) Let’s create a computer we’ll call the Simpletron. As its
name implies, it’s a simple machine, but, as we’ll soon see, it’s a powerful one as well. The Sim-
pletron runs programs written in the only language it directly understands, that is, Simpletron Ma-
chine Language, or SML for short.
The Simpletron contains an accumulator—a “special register” in which information is put
before the Simpletron uses that information in calculations or examines it in various ways. All

1. In Exercises 19.30–19.34, we’ll “peel open” a simple hypothetical compiler that will translate state-
ments in a simple high-level language to the machine language you use here. You’ll write programs
in that high-level language, compile them into machine language and run that machine language on
your computer simulator.
cpphtp10_08.fm Page 9 Wednesday, August 3, 2016 4:28 PM

Special Section: Building Your Own Computer 9

information in the Simpletron is handled in terms of words. A word is a signed four-digit decimal
number, such as +3364, -1293, +0007, -0001, etc. The Simpletron is equipped with a 100-word
memory, and these words are referenced by their location numbers 00, 01, …, 99.
Before running an SML program, we must load, or place, the program into memory. The first
instruction (or statement) of every SML program is always placed in location 00. The simulator
will start executing at this location.
Each instruction written in SML occupies one word of the Simpletron’s memory; thus,
instructions are signed four-digit decimal numbers. Assume that the sign of an SML instruction is
always plus, but the sign of a data word may be either plus or minus. Each location in the Sim-
pletron’s memory may contain an instruction, a data value used by a program or an unused (and
hence undefined) area of memory. The first two digits of each SML instruction are the operation
code that specifies the operation to be performed. SML operation codes are shown in Fig. 8.3.

Operation code Meaning

Input/output operations
const int read{10}; Read a word from the keyboard into a specific location in
memory.
const int write{11}; Write a word from a specific location in memory to the
screen.
Load and store operations
const int load{20}; Load a word from a specific location in memory into the
accumulator.
const int store{21}; Store a word from the accumulator into a specific location
in memory.
Arithmetic operations
const int add{30}; Add a word from a specific location in memory to the word
in the accumulator (leave result in accumulator).
const int subtract{31}; Subtract a word from a specific location in memory from
the word in the accumulator (leave result in accumulator).

const int divide{32}; Divide a word from a specific location in memory into the
word in the accumulator (leave result in accumulator).
const int multiply{33}; Multiply a word from a specific location in memory by the
word in the accumulator (leave result in accumulator).
Transfer-of-control operations
const int branch{40}; Branch to a specific location in memory.
const int branchneg{41}; Branch to a specific location in memory if the accumulator
is negative.
const int branchzero{42}; Branch to a specific location in memory if the accumulator
is zero.
const int halt{43}; Halt—the program has completed its task.

Fig. 8.3 | Simpletron Machine Language (SML) operation codes.


cpphtp10_08.fm Page 10 Wednesday, August 3, 2016 4:28 PM

10 Chapter 8 Pointers

The last two digits of an SML instruction are the operand—the address of the memory loca-
tion containing the word to which the operation applies.
Now let’s consider two simple SML programs. The first (Fig. 8.4) reads two numbers from the
keyboard and computes and displays their sum. The instruction +1007 reads the first number from
the keyboard and places it into location 07 (which has been initialized to zero). Instruction +1008
reads the next number into location 08. The load instruction, +2007, places (copies) the first num-
ber into the accumulator, and the add instruction, +3008, adds the second number to the number
in the accumulator. All SML arithmetic instructions leave their results in the accumulator. The store
instruction, +2109, places (copies) the result back into memory location 09. Then the write instruc-
tion, +1109, takes the number and displays it (as a signed four-digit decimal number). The halt
instruction, +4300, terminates execution.

Location Number Instruction

00 +1007 (Read A)
01 +1008 (Read B)
02 +2007 (Load A)
03 +3008 (Add B)
04 +2109 (Store C)
05 +1109 (Write C)
06 +4300 (Halt)
07 +0000 (Variable A)
08 +0000 (Variable B)
09 +0000 (Result C)

Fig. 8.4 | SML Example 1.

The SML program in Fig. 8.5 reads two numbers from the keyboard, then determines and
displays the larger value. Note the use of the instruction +4107 as a conditional transfer of control,
much the same as C++’s if statement.

Location Number Instruction

00 +1009 (Read A)
01 +1010 (Read B)
02 +2009 (Load A)
03 +3110 (Subtract B)
04 +4107 (Branch negative to 07)
05 +1109 (Write A)
06 +4300 (Halt)
07 +1110 (Write B)
08 +4300 (Halt)
09 +0000 (Variable A)
10 +0000 (Variable B)

Fig. 8.5 | SML Example 2.


cpphtp10_08.fm Page 11 Wednesday, August 3, 2016 4:28 PM

Special Section: Building Your Own Computer 11

Now write SML programs to accomplish each of the following tasks:


a) Use a sentinel-controlled loop to read positive numbers and compute and display their
sum. Terminate input when a negative number is entered.
ANS:
00 +1009 (Read Value)
01 +2009 (Load Value)
02 +4106 (Branch negative to 06)
03 +3008 (Add Sum)
04 +2108 (Store Sum)
05 +4000 (Branch 00)
06 +1108 (Write Sum)
07 +4300 (Halt)
08 +0000 (Storage for Sum)
09 +0000 (Storage for Value)

b) Use a counter-controlled loop to read seven numbers, some positive and some negative,
and compute and display their average.
ANS:
00 +2018 (Load Counter)
01 +3121 (Subtract Termination)
02 +4211 (Branch zero to 11)
03 +2018 (Load Counter)
04 +3019 (Add Increment)
05 +2118 (Store Counter)
06 +1017 (Read Value)
07 +2016 (Load Sum)
08 +3017 (Add Value)
09 +2116 (Store Sum)
10 +4000 (Branch 00)
11 +2016 (Load Sum)
12 +3218 (Divide Counter)
13 +2120 (Store Result)
14 +1120 (Write Result)
15 +4300 (Halt)
16 +0000 (Variable Sum)
17 +0000 (Variable Value)
18 +0000 (Variable Counter)
19 +0001 (Variable Increment)
20 +0000 (Variable Result)
21 +0007 (Variable Termination)

c) Read a series of numbers, and determine and display the largest number. The first num-
ber read indicates how many numbers should be processed.
ANS:
00 +1017 (Read Endvalue)
01 +2018 (Load Counter)
02 +3117 (Subtract Endvalue)
03 +4215 (Branch zero to 15)
04 +2018 (Load Counter)
05 +3021 (Add Increment)
06 +2118 (Store Counter)
07 +1019 (Read Value)
08 +2020 (Load Largest)
09 +3119 (Subtract Value)
10 +4112 (Branch negative to 12)
11 +4001 (Branch 01)
12 +2019 (Load Value)
13 +2120 (Store Largest)
14 +4001 (Branch 01)
cpphtp10_08.fm Page 12 Wednesday, August 3, 2016 4:28 PM

12 Chapter 8 Pointers

15 +1120 (Write Largest)


16 +4300 (Halt)
17 +0000 (Variable EndValue)
18 +0000 (Variable Counter)
19 +0000 (Variable Value)
20 +0000 (Variable Largest)
21 +0001 (Variable Increment)
Another random document with
no related content on Scribd:
Cyathophyllidae, 394
Cyathophyllum, 394
Cycads, spermatozoa of, 38
Cyclidium, 137
Cyclocnemaria, 397
Cyclomyaria, 325
Cyclops, host of Choanophrya, 159;
of Rhyncheta and other Suctoria, 159 f., 162;
of Vorticellidæ, 158
Cycloseridae, 404
Cydippidea, 417
Cydippiform stage of Lobata and Cestoidea, 414
Cydonium milleri, 222
Cymbonectes, 306
Cymbonectinae, 306
Cyphoderia, 52
Cyrtoidea, 79
Cyst (a closed membrane distinct from the cytoplasm around a
resting-cell or apocyte), 37, 39;
cellulose-, 37;
chitinous, 37;
growth of vegetal cell in, 37;
of Protozoa present in dust, 47;
of Centropyxis aculeata, 57;
of Chlamydophrys stercorea, 57;
of Amoeba coli, 57;
of Actinophrys sol, 72;
of Actinosphaerium, 73 f.;
of Flagellata, 109, 117 f.;
brood-, of Paramoeba eilhardii, 116 n.;
of Bodo saltans, 117;
of Opalina, 123 f.;
of Volvocaceae, 128;
of Dinoflagellates, 131;
of Pyrocystis, 131, 132;
of Ciliata, 147;
of Colpoda cucullus, 147, 153;
temporary (hypnocyst) of Rhizopoda, 57;
of Proteomyxa, 88;
of Myxomycetes, 91;
-wall, of Acystosporidae, 104 f.
Cystiactis, 382
Cystid—see Cystoidea
Cystiphyllidae, 394
Cystoflagellata, 110, 132 f.
Cystoidea, 580, 597 f.
Cytogamy, 33 f.
Cytoplasm, 6;
of ovum of Sea-urchin, 7;
granular, nutritive, of muscle cell, 19;
in cell-division by mitosis, 26 f.;
during syngamy, 34

Dactylometra, 311, 323;


D. lactea, 312
Dactylopores, 257
Dactylozooids, 264;
of Hydractinia, 264;
of Millepora, 259;
of Siphonophora, 299
Dale, on chemiotaxy, 22
Dallinger, W. H., and Drysdale, C., on Protozoa, 44, 45;
on organisms of putrefaction, 44, 116 f.;
on life-histories of Flagellates, 116 f.
Dallingeria, 111, 112, 119;
anchoring flagella of, 114;
D. drysdali, gametes of, 116 n.
Dalyell, 317 n., 375
Dangeard, on brood-division in active Chlamydomonadidae, 115;
on Flagellata, 119 n.
Dantec, Le, on protoplasmic movements, 16 n.;
on peptic digestion in Protozoa, 16
Darwin, 328 n., 360, 391
Darwinella, 221
Dasygorgiidae, 333 (= Chrysogorgiidae, 355)
Davenport on protoplasmic movements, 16 n., 19 n.
Dawydoff, 423
Dead men's fingers (= Alcyonium digitatum, 349)
Death, 11;
by diffluence, granular disintegration or solution, 14 f.;
by desolution, 15;
necessary, of colonial cells of Volvox, 128;
in Volvox and in Metazoa, compared, 130
Deep-sea deposits (Foraminifera), 70
Degen, on functions of contractile vacuole, 15 n.
Degeneration, senile, among Ciliata, 148
Deglutition in Podophrya trold, 159
—see also Ingestion of food
Deiopea, 419
Deiopeidae, 419
Delage, on protoplasm, 3 n.;
on syngamy, 34 n.;
on motion of flagella, 114 n.;
on Sponges, 168, 174, 226;
and Hérouard, on Protozoa, 46
Delap, M. J., 311 n.
Deltoid plate of Blastoidea, 599
Demospongiae, 195, 209 f.
Dendoryx, 224
Dendrite, 444
Dendrobrachia, 409
Dendrobrachiidae, 409
Dendroceratina, 209, 220, 221
Dendrochirota, 568, 569, 572, 577, 578
Dendrocometes, 159, 160, 161 f.
Dendrograptidae, 281
Dendrograptus, 281
Dendrophyllia, 404
Dendy, 188 n., 192, 274, 275
Depastrella, 321
Depastridae, 320, 321
Depastrum cyathiforme, 321
Depressor muscles of compasses of Echinus esculentus, 527
Dercitus bucklandi, 221
Dermal, gill—see Papula;
membrane, 170
Dermalia, 201
Dermasterias, 471
Desma (the megasclere which forms the characteristic skeletal
network of the Lithistida, an irregular branched spicule), 215,
224
Desmacella, 224
Desmacidon, 222
Desmophyes, 307
Desmophyinae, 307
Desmothoraca, 71
Desolution of protoplasm, 11 f.
Deutomerite, 98
Development, of Sponges, 226;
of Scyphozoa, 316;
of Alcyonaria, 341;
of Zoantharia, 373;
of Echinodermata, 601 f.
Dextrin, 15
Diadematidae, 531, 532, 538 f., 558
Diadematoid type of ambulacral plate, 531, 539
Dialytinae, 192
Diancistra (a spicule resembling a stout sigma, but the inner margin
of both hook and shaft thins out to a knife edge and is
notched), 222
Diaphorodon, 59;
shell of, 60
Diaseris, 404;
asexual reproduction, 388
Diatomaceae, skeleton of, 84;
symbiotic with Collosphaera, 86
Diatomin, 86;
(?) in coloured Flagellates, 115 n.
Dichoporita, 598, 599
Dicoryne, 268, 270
Dictyoceratina, 220
Dictyocha, 110
Dictyochida (= Silicoflagellata, 110), 79;
in Phaeocystina, 86 f.
Dictyocystis, 137;
test of, 152
Dictyonalia, 201
Dictyonema, 281
Dictyonina, 202
Dictyostelium, 90
Dicyclica, 594
Dicymba, 308
Dicystidae, 97
Didinium, 137;
trichocysts of, 143
Didymium, 90;
D. difforme, 92
Didymograptus, 282
Diffluence, 14 f.
Difflugia, 52;
D. pyriformis, 55;
test of, 55
Digestion, 9, 15 f.;
of reserves in brood-formation, 33;
in Carchesium, 147;
in Starfish, 440
Digestive system—see Alimentary Canal
Dileptus, 137, 152 n.
Dill, on Chlamydomonas, etc., 119 n.
Dimorpha, 70, 73, 75 n., 112
Dimorphism of chambered Foraminifera, 67 f.
Dinamoeba, 51;
test of, 53
Dinenympha, 111, 115;
undulating membranes of, 123
Dinobryon, 110, 112
Dinoflagellata, 110, 113, 130, 131, 132;
plastids of, 40;
nutrition of, 113
Dinoflagellate condition of young Noctiluca, 134
Diphyes, 303, 307
Diphyidae, 306
Diphyopsinae, 307
Diplacanthid, 457
Dipleurula, definition, 605;
forms of, 605-608
Diplocyathus, 277
Diplodal, 210
Diplodemia, 223
Diploëpora, 346
Diplograptus, 281, 282
Diplomita, 111
Diplopore, 597, 599
Diploporita, 598, 599
Diprionidae, 282
Directives, 367
Disc, of Vorticellidae, 155, 158;
of Ophiothrix fragilis, 484
Discalia, 309
Discohexaster, 200
Discoidea, 77
Discoidea, 558
Discomedusae (= Ephyropsidae, 322 + Atollidae, 322 + Discophora,
323)
Discomorpha, 137
Discooctaster, 200
Discophora, 310, 316, 323 f.
Discorbina, 59, 63;
reproduction of, 69
Discosomatidae, 383
Diseases, produced by Coccidiidae, 102;
by Acystosporidae, 103 f.;
by Flagellates, 119 f.;
by Trypanosomes, 119 f.;
Protozoic organisms of, 43 f.
Dissepiments, 385, 387
Dissogony, 419
Distichopora, 284, 286
Distomatidae, 110
Distribution of Protozoa, 47;
of Sponges, in space, 239 f.;
in time, 241
Disyringa dissimilis, 209, 214, 215
Diverticulum—see Caecum
Division, binary, 10;
reduction-, 75 n.
Dixon and Hartog on pepsin in Pelomyxa, 16
Dobie, 167
Doederlein, 193 n.
Doflein, 46;
on parasitic and morbitic Protozoa, 94 n.;
on syngamy of Cystoflagellates, 135
Dohrn, on carnivorous habits of Sphaerechinus, 516
Dolichosporidia (= Sarcosporidiaceae), 98, 108
Doramasia, 306;
D. picta, 303
Dorataspis, 78;
skeleton, 80
Dorocidaris—see Cidaris
Dorsal elastic ligament of Antedon rosacea, 587
Dorso-central plate of Echinarachnius parma, 543
Dourine, disease of horses and dogs, 119
Drepanidium (= Lankesterella), 97, 102
Dreyer, on genera and species of Radiolaria, 87 f.;
on skeleton of Radiolaria, 82 n.
Dropsy, ascitic, associated with Leydenia, 91
Drysdale and Dallinger, on organisms of putrefaction, 44 f., 116 f.
Dual force of dividing cell, 26 f.
Duboscq, Léger and, sexual process in Sarcocystis tenella, 108 n.
Duerden, 261, 369 n., 371, 373, 374, 389, 397 n., 400 n., 403, 405,
406
Dujardin, on sarcode (= protoplasm), 3;
on Protozoa, 45;
on true nature of Foraminifera, 62 f.;
on Sponges, 167
Dust, containing cysts of Protozoa, 47;
of Flagellata, 118
Dysentery, in Swiss cattle, caused by Coccidium, 102;
tropical, caused by Amoeba coli, 57
Dysteria, 137, 153;
oral apparatus, 145;
shell, 141

Earthworm, Monocystis parasitic in, 95


Echinanthidae, 549
Echinarachnius, 548, 549;
E. parma, 542 f., 543, 544, 545, 547;
shape, 542;
sphaeridia, 545;
internal skeleton, 545;
habits, 546;
alimentary canal, 546;
Aristotle's lantern, 546;
tube-feet, 547
Echinaster, 439, 462
Echinasteridae, 455, 458, 462
Echinating, 217
Echinidae, 539, 558
Echininae, 539
Echinocardium, 549;
E. cordatum, 549 f., 551, 552;
habitat, 549;
shape, 550;
spines, 550;
sphaeridia, 551;
alimentary canal, 551;
tube-feet, 551;
habits, 552;
stone-canal, 552;
E. flavescens, 555;
E. pennatifidum, 555
Echinoconidae, 558
Echinocyamus, 548, 549;
E. pusillus, 549
Echinocystites, 557
Echinodermata, 425 f.
Echinoid stage in the development of a Holothuroid, 615
Echinoidea, 431, 503 f.;
compared with Holothuroidea, 560;
with Blastoidea, 580;
mesenchyme of larva, 604;
development of, 607, 608, 609, 613, 614;
phylogeny of, 622
Echinolampas, 554
Echinometra, 542
Echinomuricea, 356
Echinoneus, 553, 553
Echinonidae, 553
Echinopluteus, 607, 608;
metamorphosis of, 613, 614
Echinosphaerites, 598;
E. aurantium, 598
Echinothuriidae, 530, 531, 532, 535, 558, 560
Echinus, 533, 539;
E. esculentus, 504 f. 505, 507, 511-515;
locality, 504;
spines, 506;
pedicellariae, 506;
corona, 511;
periproct, 513;
peristome, 513;
alimentary canal, 516;
water-vascular system, 516 f.;
nervous system, 518 f.;
sphaeridia, 524;
perihaemal spaces, 524 f.;
genital system, 528;
blood-system, 529;
larva, 507;
E. acutus, 540;
pedicellariae, 509;
E. alexandri, pedicellaria, 510;
E. elegans, 539, 540;
pedicellariae, 510;
E. microtuberculatus, 540;
E. miliaris, 540, 542, 549;
E. norvegicus, 539, 540
Economic uses of Foraminifera, 69 f.
Ectocoele, 367
Ectoderm, 246
Ectoplasm (= ectosarc), 6, 46 f., 50;
of Amoeba, 5;
of Rhizopoda, 51 f.;
of Heliozoa, 71 f.;
of Radiolaria, 79 f. (see also Extracapsular protoplasm);
regeneration of, in Radiolaria, 35;
of Collozoum inerme, 76;
of Gregarines, 96 f.;
of Ciliata, 141 f.;
of Stylonychia, 140;
of Suctoria, 159;
of Trachelius ovum, 153;
of Vorticella, 156
Ectopleura, 268
Ectosarc—see Ectoplasm
Ectosome, 170
Ectyoninae, 217
Edrioasteroidea, 580, 596
Edwardsia, 328, 366, 368, 376;
E. allmani, 377;
E. beautempsii, 376, 377;
E. carnea, 377;
E. goodsiri, 377;
E. tecta, 377;
E. timida, 376, 377
Edwardsia stage of Zoantharia, 367
Edwardsiidae, 377
Edwardsiidea, 367, 371, 375, 395
Egg, fertilised, 31;
of Metazoa, 32 f.;
of bird, 32;
various meanings of, 34;
of affected Silkworm moths transmitters of pébrine, 107
Ehrenberg, on Protozoa, 45 f.;
on skeletons of Radiolaria, 87 f.;
on Ciliata, 146;
on Suctoria, 162
Eimer and Fickert, on classification of Foraminifera, 58 n.
Elasipoda, 569, 571, 577, 578
Electric, currents, stimulus of, 19, 22;
shock, action on Amoeba, etc., 7
Eleutheria, the medusa of Clavatella, 265
Eleutheroblastea, 253
Eleutheroplea, 279
Eleutherozoa, 430, 560, 577, 579, 583;
development of, 602 f.;
larva of, 605;
phylogeny of, 621, 622
Elevator muscles of compasses of Echinus esculentus, 527
Ellipsactinia, 283
Ellis, 167
Embryonic type of development, 601
Encystment, 37, 39;
of animal cells, 37;
of vegetal cells, 37, 39;
growth during, 37;
of zygote, general in Protista, 34;
of Rhizopoda, 57;
temporary, of Rhizopoda, 57 (see also Hypnocyst);
of Heliozoa, 72 f.;
of Actinophrys, 72;
of Actinosphaerium, 73 f.;
of Proteomyxa, 88, 89
of Myxomycete zoospores, 90 f.;
of Sporozoa, 96 f.;
of zygote of Sporozoa, 95 f.;
of Gregarines, 95 f., 98;
of Lankesteria, 95;
of Monocystis, 96;
of Coccidiidae, 97 f.;
of Coccidium, 100, 101;
of archespore or pansporoblast of Myxosporidiaceae, 107;
of Flagellates, 115, 117 f.;
of zygote of Bodo saltans, 117;
of Opalina, 123 f.;
of oosperm of Volvocaceae, 127 f., 129 f.;
of Dinoflagellates, 131;
of Ciliata, 147;
of Colpoda cucullus, 147, 153
Endocyclica, 529, 530 f., 556, 559
Endoderm, 246
Endogamy, in Amoeba coli, 57;
in Actinosphaerium, 73 f., 75 (diagram);
in Stephanosphaera, 128
Endogenous budding in Suctoria, 160 f., 162
Endoparasitic Suctoria, 86, 160 f.
Endoplasm (= endosarc, q.v.), 6
—see also Intracapsular protoplasm (Radiolaria)
Endoral, cilia, 139;
undulating membrane, 139
Endosarc (= endoplasm), 6;
of Gregarines, 95 f.;
branching, of Noctiluca, 110, 133;
of Loxodes and Trachelius, 144, 153;
of Ciliata, 143 f.;
of Stylonychia, 140;
of Suctoria, 161
Endosphaera, 159, 161
Energy, changes of, in living organism, 8, 13;
sources of, 13 f.
Entocnemaria, 394
Entocoele, 367
Entosolenia, 66
Entz, Geza, on Choanoflagellates, 121 n.;
on structure of Vorticella, 157 n.
Eocene Foraminifera, 70
Eolis (= Aeolis), 248
Eophiura, 501
Eozoon, 70 n.
Epaulettes, 315
Epenthesis, 281
Ephelota, 159, 160;
E. bütschliana, cytological study of, 162
Ephydatia, 217, 225;
E. fluviatilis, structure, etc., 174 f., 176, 177, 178, 179
Ephyra, 317
Ephyropsidae, 322
Epiactis (usually placed in the order Zoanthidea, 404);
E. marsupialis, 379;
E. prolifera, 379
Epibulia, 308
Epidemic, of pébrine among Silkworms, 107;
among Fish, due to Costia necatrix, 119;
to Myxosporidiaceae, 107;
to Icthyophtheirius, 152
—see also Diseases, Fever
Epigonactis fecunda, 379
Epimerite of Gregarines, 97, 98 f.
Epineural canal, of Ophiothrix fragilis, 481;
of Echinus esculentus, 515
Epiphysis, of jaw, of Echinus esculentus, 526;
of jaws of Diadematidae, 531;
absent in Cidaridae and Arbaciidae, 531
Epiphytic Protozoa, 48
Epiplasm (= cytoplasm of a brood-mother-cell remaining over
unused in brood-formation), 96
Epistrelophyllum, 403
Epistylis, 138, 158;
E. umbellaria, nematocysts of, 249
Epitheca, 386
Epizoanthus, 406;
on Hyalonema, 204;
E. glacialis, infested by Gregarines, 99;
E. incrustatus, 406;
E. paguriphilus, 406;
E. stellaris, 406
Epizoic, Protozoa, 48;
Ciliata, 158;
Suctoria, 158, 162
—see also Symbiosis
Equatorial plate (= the collective chromosomes at the equator of the
spindle in mitosis), 25, 27
Equiangular, 185
Errina, 284, 286;
E. glabra, 286;
E. ramosa, 286
Ersaea, 306;
E. picta, 303
Esperella, 225, 231
Esperiopsis, 225
Euaster (a true aster in which the actines proceed from a centre,
contrasting with the streptaster), 184
Eucalyptocrinus, 596
Eucharidae, 420
Eucharis, 420;
E. multicornis, 416, 418 f., 420
Enchlora, 417
Eucladia, 502
Euclypeastroidea, 549
Eucopidae, 277, 280
Eudendrium, 269, 270
Eudiocrinus, 594
Eudorina, 111, 128 f.
Eudoxia, 306;
E. eschscholtzii, 303
Euglena, 110;
barotaxy of, 20;
nutrition of, 113;
E. viridis, 124
Euglenaceae, 110, 124;
pellicle of, 113
Euglenoid motion, 124;
of Sporozoa, 50
Euglypha, 52;
in fission, 29;
test, 29, 54
Eunicea, 356;
spicules, 335, 336
Eunicella, 356;
spicules, 335, 336;
E. cavolini, 356
Eupagurus prideauxii, 378, 381;
E. bernhardus, 378
Eupatagus, 553
Euphyllia, 401
Euplectella, 204;
E. aspergillum (Venus's Flower-Basket, 197);
E. imperialis, 206;
E. suberea, 202, 204, 205, 221
Euplexaura, 356
Euplokamis, 418
Euplotes, 138
Eupsammiidae, 402, 404
Eurhamphaea, 419
Eurhamphaeidae, 419
Euryalidae, 501
Eurypylous, 210
Euspongia, 221
Eutreptia, 110;
E. viridis, 124
Evacuation of faeces by mouth in Noctiluca, 133
Evans, 179 n., 217
Excretion, 13 f.;
in Sponges, 172;
in Asterias rubens, 437;
in Echinus esculentus, 527, 528;
in Antedon rosacea, 587
Excretory, granules, 6;
of Ciliata, 144;
pore of contractile vacuole of Flagellates, 110;
of Trachelius ovum, 153
Exogametes of Trichosphaerium, 54
Exogamy, 34 n.;
in Rhizopoda, 56 f.;
in Foraminifera, 68 f.
Expansion of Amoeboid cell, 16 f.
Exsert, septa, 398, 399
Extracapsular protoplasm, of Phaeodaria, 76;
of Radiolaria, 79 f. (see also Ectoplasm)
Eye of Asterias, 445 f., 446;
of Echinoidea, 512
Eye-spot of coloured Protista, 21, 125 f.

Fascicularia, 348
Fasciole, of Echinocardium, 550, 555;
of Spatangoidea, 553;
of Spatangus, 553;
of Eupatagus, 553;
of Spatangidae, 555
Fats, fatty acids, 15;
in Flagellates, 110, 115;
formation of, 36
Fauré-Fremiet, on attachment of Peritrichaceae, 141 n.
Faurot, 368
Favia, 373, 401
Favosites, 344
Favositidae, 344
Feather-star, 581
Feeding, of Noctiluca, 133, 144;
of Peritrichaceae, 145
—see also Food
Feeler, of Holothuria nigra, 561 f., 566;
of Holothuroidea, 568;
of Dendrochirota, 568, 572;
of Synaptida, 568, 575;
of Molpadiida, 568, 575
Female gamete, 33;
of Pandorina, 128 f.;
of Acystosporidae, 104 f.;
of Peritrichaceae, 151, 157
—see also Megagamete, Oosphere
Ferment, required for germination, brood-formation, etc., 32 f.
—see also Zymase
Fermentation, organisms of, 43 f.
Fertilisation, 33 f.;
"chemical," 32 n.
Fertilised egg, 31
—see also Oosperm, Zygote
Fertilising tube of Chlamydomonas, 125
Fever, intermittent, malarial, 103 f.;
relapsing, 121;
remittent, 105;
Texas-, Tick, 120;
Trypanosomic, 119 f.
Fewkes, 268 n.
Fibularidae, 549
Fibularites, 559
Fickert, Eimer and, on classification of Foraminifera, 58 n.
Ficulina, 219, 224, 230;
F. ficus, 219
Filoplasmodieae, 90 f.
Filopodia, 47 n.
Filosa, 29, 50, 52 f.;
resemblance to Allogromidiaceae, 59
Finger, 580;
of Cystoidea, 597;
of Blastoidea, 599, 600
Firestone of Delitzet contains fossil Peridinium, 132
Fischer, on fixing reagents, 11;
on structure of flagellum, 114
Fish, rheotaxy of, 21;
epidemics of, due to Myxosporidiaceae, 107;
to Costia necatrix, 119;
to Ichthyophtheirius, 152
Fission, 10, 23 f.;
equal, 10;
Spencerian, 23;
multiple, 30 f. (see also Brood-division);
of Heliozoa, 72 f.;
of Radiolaria, 84 f.;
radial, in Volvocaceae, 110;
transverse, in Craspedomonadidae, 115 n.;
longitudinal and transverse, of Bodo saltans, 117;
of Opalina, 123;
of Euglenaceae, 124;
of Eutreptia viridis, 124;
of Noctiluca, 133;
of Ciliata, 147 f.;
of Stentor polymorphus, 156;
of Vorticellidae, 157 f.
—see also Bud-fission
Fissiparantes, 387, 400
Fixing protoplasm, 15
Flabellum, 375, 386, 398;
protandry of, 370
Flagella, flagellum, 17 f., 47;
of Protozoa, 47;
formed by altered pseudopodia in Microgromia, 60;
of Heliozoa, 73;
of sperms of Coccidiidae, 102;
of Acystosporidae, 105;
of Flagellata, 109, 114 f.;
of Trichonymphidae, 114;
Delage on mechanism of, 114 n.;
of Bodo saltans, 117;
of Trypanosoma, 121;
of Euglenaceae, 124 f.;
of Maupasia, 124;
of Eutreptia viridis, 124;
of Sphaerella, 126;
of Dinoflagellata, 130, 131;
of Peridinium, 131;
of Polykrikos, 132;
of Noctiluca, 132, 133 f.
—see also Sarcoflagellum
Flagellar pit, in Flagellates, 110, 124 f.
Flagellata, 17 f., 40, 48 f., 50, 109 f.;
barotaxy of, 20;
galvanotaxy of, 22;
chemiotaxy of, 23;
nutrition of, 40, 113;
of putrefying liquids, 44, 116 f.;
studied by botanists, 45;
as internal parasites, 48, 119 f.;
relations with Acystosporidae, 106;
shell of, 113;
stalk of, 113;
life-history of, 116 f.;
literature of, 119;
saprophytic, 119 f.
Flagellate stage, of Sarcodina, 56 f., 60, 109;
of Heliozoa, 74;
of Radiolaria, 85 f.
—see also Flagellula
Flagellated chamber, 170
Flagellula, 31;
of Proteomyxa, 88, 89;
of Myxomycetes, 91, 92;
of Didymium, 92
—see also Zoospores
Flagellum—see Flagella
Fleming, 168 n.
Flexible Corals, 326
Flint, 219, 241
Floricome, 203
Floscelle, of Echinocardium cordatum, 551;
of Cassidulidae, 554
Flowering plants, male cells of, 38
Flowers of tan (= Fuligo varians), 92 f.;

You might also like