SlideShare a Scribd company logo
Visit https://testbankdeal.com to download the full version and
browse more test banks or solution manuals
C++ How to Program 10th Edition Deitel Solutions
Manual
_____ Press the link below to begin your download _____
https://testbankdeal.com/product/c-how-to-program-10th-
edition-deitel-solutions-manual/
Access testbankdeal.com now to download high-quality
test banks or solution manuals
We believe these products will be a great fit for you. Click
the link to download now, or visit testbankdeal.com
to discover even more!
C++ How to Program 10th Edition Deitel Test Bank
https://testbankdeal.com/product/c-how-to-program-10th-edition-deitel-
test-bank/
C How to Program 7th Edition Deitel Solutions Manual
https://testbankdeal.com/product/c-how-to-program-7th-edition-deitel-
solutions-manual/
Visual C# How to Program 6th Edition Deitel Solutions
Manual
https://testbankdeal.com/product/visual-c-how-to-program-6th-edition-
deitel-solutions-manual/
Contemporary Project Management 4th Edition Kloppenborg
Solutions Manual
https://testbankdeal.com/product/contemporary-project-management-4th-
edition-kloppenborg-solutions-manual/
Evaluating Practice Guidelines For The Accountable
Professional 6th Edition Bloom Test Bank
https://testbankdeal.com/product/evaluating-practice-guidelines-for-
the-accountable-professional-6th-edition-bloom-test-bank/
Dosage Calculations Canadian 4th Edition Pickar Test Bank
https://testbankdeal.com/product/dosage-calculations-canadian-4th-
edition-pickar-test-bank/
Anthropology Appreciating Human Diversity 16th Edition
Kottak Test Bank
https://testbankdeal.com/product/anthropology-appreciating-human-
diversity-16th-edition-kottak-test-bank/
Making Hard Decisions with DecisionTools 3rd Edition
Clemen Solutions Manual
https://testbankdeal.com/product/making-hard-decisions-with-
decisiontools-3rd-edition-clemen-solutions-manual/
Business Statistics 3rd Edition Sharpe Solutions Manual
https://testbankdeal.com/product/business-statistics-3rd-edition-
sharpe-solutions-manual/
Introduction to Probability and Statistics 15th Edition
Mendenhall Solutions Manual
https://testbankdeal.com/product/introduction-to-probability-and-
statistics-15th-edition-mendenhall-solutions-manual/
8
Pointers
O b j e c t i v e s
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 1 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 2 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 3 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 4 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 5 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 6 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?
ANS:
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?
Enter two strings: string1 string2
string1string2
cpphtp10_08.fm Page 7 Wednesday, August 3, 2016 4:28 PM
8 Chapter 8 Pointers
8.14 (What Does This Code Do?) What does this program do?
ANS:
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 // 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?
Enter a string: length
6
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 8 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 9 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.
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 +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.
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 10 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 11 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)
cpphtp10_08.fm Page 12 Wednesday, August 3, 2016 4:28 PM
Other documents randomly have
different content
忙,不及提向瀛洲賣。」可以謂之荒唐矣! 七 宋人絕句有補採者,
如:「人老簪花不自羞,花應羞上老人頭。醉中扶過平康里,十里珠
簾半上鉤。」「一百二十四門生,春風初長羽毛成。衰翁漸老兒孫
小,他日知誰略有情。」「暮鼓晨鐘自擊撞,關門欹枕有殘缸。白灰
撥盡通紅火,臥聽蕭蕭雪打窗。」沙軟波清山路微,手持筇杖著深
衣。白鷗不信忘機久,見我猶穿岸柳飛。」塚上為亭鬼莫嗔,塚頭人
是塚中人。憑欄莫問興亡事,除卻虛空總是塵。」天一峰前是我家,
滿床書籍舊生涯。春城戀酒不歸去,老卻碧桃無限花。」閒把羅衣泣
鳳凰,先朝曾教舞衣裳。春來卻羨庭花落,得逐晴風出苑牆。」 八
每見今人知集中詩缺某體,故晚年必補作此體,以補其數:往往吃力
而不討好。不知唐人:五言工,不必再工七言也;古體工,不必再工
近體也;是以得情性之真,而成一家之盛。試觀李、杜、韓、蘇全
集,便見大概。 九 詩有見道之言,如梁元帝之「不疑行舫往,惟看
遠樹來」,庾肩吾之「只認己身往,翻疑彼岸移」:兩意相同,俱是
悟境。王梵志云:「昔我未生時,冥冥無所知。天公忽生我,生我複
何為無衣使我寒,無食使我飢。還你天公我,還我未生時。」八句是
禪家上乘。陳後山云:「美人梳洗時,滿頭間珠翠。豈知兩片雲,戴
著幾村稅」四語是《小雅》正風。 一O 胡書巢太守官罷,兩次捐複,
家資搜括已盡,第三次再捐。余寄宋人《詠被虜女子》詩云;「到底
不知顏色誤,馬前猶自買胭脂。」胡卒不聽以行,未及補官而卒。餘
為刻其《碧腴齋詩集》,而葬之於金陵瑤坊門外。有童子作《討蚊
檄》云:「成群結隊,渾家流賊之形,鼓翅高吟,滿眼時文之鬼。」
蓋憎其師之督責時文故也。語雖惡,恰有風趣。 一二 余曾兩題漂母
祠,後有所感,又作一首,云:「莫說英雄解報恩,也須早貴似王
孫。倘教漂母身先死,誰輦千金到九原」 一三 吾鄉厲太鴻與沈歸
愚,同在浙江志館,而詩派不合。餘道:厲公七古氣弱,非其所長,
然近體清妙,至今為浙派者,誰能及之如:「身披絮帽寒猶薄,才上
籃輿趣便生。」壓枝梅子多難數,過雨楊花貼地飛。」白日如年娛我
老,綠陰似水送春歸。」《入都會試途中除夕》云:「荒村已是裁春
帖,茅店還聞索酒錢。」「燭為留人遲見跋,雞防失旦故爭先。」皆
絕調也。 一四 唐人最重五律,所以劉長卿有「長城」之號。近日吳
門何豈匏錦專工此體。《聽鐵師彈琴》云:「抱琴來幾年,孤寺夕陽
天。往往輟殘課,泠冷調古弦。未秋先落葉,無壑忽鳴泉。自覺疏慵
甚,來聽輸鶴先。」通首一氣呵成,殊難得也。其他佳句如:「衣著
舊棉重,窗糊新紙明。」呈詩多越座,避酒或憑欄。」皆是作詩,不
是描詩。 一五 田實發進士詠《曉鐘》云:「雨雲魂夢初驚後,名利
心思未動前。」亦妙。 一六 揚州陳又群實孫{秋閨月》云:「欲眠初
卷幔,月已到床前。因怯衾稠冷,依然不敢眠。」又,《遣興》云;
「遠山明向斜陽後,春睡濃於細雨時。」甘肅吳承禧有句云:「收心
強學人端坐,改字頻忘墨倒磨。」又曰:「卻笑山居人懶甚,落花不
掃待風來。」 一七 乙卯春,餘在揚州。巡漕謝香泉侍御移尊寓所,
有夢樓侍講、香岩秀才、歌者計賦琴。門下士劉熙即席云:「謝公清
興軼雲霄,賓館移尊慰寂寥。地足騁懷寧厭小,客仍是王不須招。無
邊煙景剛三月,蓋世才人聚一宵。定有德星占太史,千秋高會續紅
橋。」「一枝玉樹冠群芳,入座題襟興倍長。從古佳人是男子,見
《東漢書,。於今問字有歌郎。計郎學詩於隨園。酒傾長夜真如海,
燈照名花別有光。細數平生游宴處,幾回似此最難忘」 一八 離隨園
數武,地名小桃源,有東岳道院羽士徐景仙直青,頗愛吟詠。《溪
上》云:「野塘深柳夕陽斜,斷岸無人噪晚鴉。風滿綠荷香不定,蜻
蜓飛上水藻花。」《漫興》云:「藥爐丹鼎伴閒身,山似屏遮樹作
鄰。自得桃源為地主,不成仙也勝凡人。」他如:「鶴聲帶月啼蕭
寺,樹裏開山對蔣山。」皆佳。 一九 枚少時雖受知於傅文忠公,而
與福敬齋公相從未侔面。前年,蒙其在西藏軍中通書問訊,見懷四
詩,情文雙美。今年五月,在楚征苗薨逝。枚不禁泣下,賦二詩哭
之。後見外孫陸昆圃代作四章,更覺莊重,遂加潤色,遠寄京師,而
自己所撰,又不忍割舍,故留於《詩話》中。云:「銅柱勛名萬口
傳,騎鯨人去未華顛。馬援力疾猶臨陣,祖逖英年早著鞭。底事三軍
剛洗甲,忽教一柱不擎天聖恩加到難加處,王爵追封到九泉。」塞外
高吟詩四章,遠教驛使寄袁羊。未曾識面成知己,才得通書便斷腸。
萬里魂歸憑馬革,九重親到奠椒漿。誰知朝野銜哀外,別有閒鷗泣數
行」 二O 王荊公行新法,自知民怨沸騰,乃詠《雪》云:「勢大直疑
埋地盡,功成才見放春回。村農不識仁民意,只望青天萬里開。」祖
無擇笑曰:「待到開時,民成溝中瘠矣!」荊公初召用度支判官,不
就,修起居注,不就。齎冊吏拜而求之,乃逃於廁。授知制誥,方
起。故有人見其《雪》詩而刺之,云:「不知落得幾多雪,作盡北風
無限聲。」又,詠《泉》云:「流到前溪無一語,在山作得許多
聲。」餘少時讀《荊公傳》云:「寡識不知《周禮》偽,好諛忘卻仲
尼尊。」 二— 弟香亭詩才清婉,而近日從澳門寄詩來,殊雄健,信乎
江山之助,不可少也!《渡海》云:「萬頃碧琉璃,雙瞳忽淨洗。內洋
水色碧如翡翠,至大洋則黑。數點山浮空,四面天垂水。騰身登巨
航,漸入重洋里。雨細風不生,水搖浪自起。變態出須臾,奇光閃黃
紫。濺沫潑頭上,埋舟入井底。尾低頭倏昂,左仄右複欹。人若釜內
魚,身作箕中米。惴惴忍顛危,頻頻問遐邇。出險試凝眸,得岸已在
彼。拂拭濕衣裾,檢點舊行李。回首一長籲,已渡海來矣。」《越嶺
至深澳》云:「海風大於天,海山橫截浪。山裹風輪中,人行山頂
上。風欲拔山飛,山怒與風抗。業已路斷絕,強就天依傍。頭仰方懼
壓,踵旋頓迷向。細徑曲沿邊,側身與石讓。心共懸旌搖,輿作紙鳶
放。崎嶇萬千盤,變幻頃刻狀。恥為楊朱泣,強學王尊壯。五體及百
骸,安放難穩當。官途竟至此,嗒然神氣喪。」又,《憶隨園》云:
「十年杖履暢追尋,花裏彈棋月下吟。過去何曾嫌日永,別來倏已及
春深。畫非共賞難娛目,詩未經看不放心。萬里漫言歸路遠,夢魂常
到舊山林。」 二二 余嘗有句云:「水常易涸終緣淺,山到成名畢竟
高。」偶閱《詞科掌錄》載:沈歸愚詠《北固山》云:「鐵甕日沉殘
角起,海門月暗夜潮收。」《渡江》云:「帆轉猶龍衝岸出,水聲疑
雨挾舟飛。」嚴遂成《曲谷》云;「雕盤大漠寒無影,冰裂長河夜有
聲。」《太行山》云:「孕生碧獸形何怪,壓住黃河氣不驕。」二人
四詩,皆氣體沉雄,畢竟名下無虛。 二三 燕以均年雖老,而詩極風
趣。近詠《七夕》云:「相看只隔一條河,鵲不填橋不敢過。作到神
仙還怕水,算來有巧也無多。」 二四 人但知滿口公卿者為俗,而不
知滿口不趨公卿者為尤俗,必也。素其位而行,不忮不求,無適無
莫,其斯謂之君子乎{唐闕史》載;中書舍人路群之高淡,給事中盧宏
正之富貴,雪中相過,所服不同,所言不同,而兩意相忘,相好特
甚。時人兩美之。余嘗與亞相莊滋圃赴尹文端公小飲,賦七古,有句
云:「赤也端章點也狂,夫子難禁莞爾笑。」 二五 宋人詩云;「梧
桐直不甘凋謝,數葉迎風尚有聲。」又云;「曾經玉貌君王寵,還擬
人看似昔時。」此四句,皆為失時者言,恰有餘味。 二六 餘少年
時,最怕早起。國初人有句云:「從來甘寢處,最是欲明天。」凡種
松者,初往上長,到五六十年後,便不銳上,而枝葉平鋪。六朝人有
句云:「泉高下溜急,松古上枝平。」每見雀鬥,必一齊下地。李鐵
君有句云;「斗禽雙墜地,交蔓各升籬。」游天台,夜聞雨,自覺敗
興,不料早起,而路已乾,可游。查他山有句云:「夢裏似曾聽雨
過,曉來仍不礙山行。」方知物理人情,無有不被古人說過者。 二七
代人悼亡,最難落筆。然古人有亡於禮者之禮,則自有亡於情者之
情。吳蘭雪《過竹士瘦吟樓哭纖纖夫人》云:「片紙吹來已斷腸,青
青潘鬢乍成霜。今生文字因緣重,此去人天離別長。三島舊游雲慘
綠,一樓殘夢月昏黃。羅衣單薄仙風冷,鶴背先愁怯晚涼。」書奩藥
裹亂成堆,日日題箋傍鏡台。一代紅妝歸間氣,九閨彩筆杖仙才。生
前手草教親定,病裏心花更怒開。聞說前宵猶強坐,挑燈為和一詩
來。」文採誰傳絳幔經,寄生小鳳乍梳翎。夫人繼沈散花女史女風珍
為女。床前詩卷拋猶滿,畫裏眉峰慘不青。蝴蝶飄來秋影瘦,水仙夢
到夜涼醒。旁人只賞流傳句,不管酸心不要聽。」 二八 金陵燕子磯
有永濟寺,往來士大夫,往往阻風小泊,輒有題句。國朝相國張文端
英、鄂文端爾泰,墨跡淋漓,尚存僧舍。老僧默默,曾刻一集,竟被
火焚。餘二十七歲游此寺,今八十一矣。今春又為風阻,遣家人抄
存。尹少宰會一云:「芙蓉幾朵領花宮,鐘磐聲高遞遠風。一嶺白雲
歸老納,半潭秋水住漁翁。香林鳥語天機活,古塔龍吟地勢雄。為問
攢眉陶處士,可能大醉與禪通」收纜停舟燕子磯,穿雲拾級叩僧扉。
遠公卓錫閒隨鶴,惠海蓬頭自補衣。欲向三乘窺妙相,卻因一語悟真
機。此間早識黃梅熟,何必風幡問是非」張宗伯廷璐云:「一徑秋陰
蹋蘚苔,翠蘿深處寺門開。懸岩石色窗中出,繞閣江聲樹杪來。露有
禪房容徙倚,尚留先澤重徘徊。流光五十餘年事,又到蒲公舊講台。
康熙壬戌,先公有《贈蒲公和尚,詩。」李炯云:「偶因江水阻,散
步過林巔。霧隱三台洞,雲生一線天。倚松驚戲鼠,坐石盥流泉。惟
愛鐘山色,朝朝作紫煙。」又:「山開榆力健,橋仄柳身支。」亦
佳。 二九 金纖纖女子詩才既佳,而神解尤超。或問曰;「當今詩
人,推兩大家,袁、蔣並稱,何以袁詩遠至海外,近至閨門,俱喜讀
之,而能讀蔣詩者寥寥」纖纖曰:「樂有八音,金、石、絲、竹、
匏、土、革、木,皆正聲也。然人多愛聽金,石、絲、竹,而不甚喜
聽匏,土、革,木。於試操此意,以讀兩家之詩,則任、沈之是非,
即邢、魏之優劣矣。」人以為知言。纖纖又語其郎君竹士云:「聖人
曰,『《詩》三百,一言以蔽之,曰思無邪。』余讀袁公詩,取《左
傳》三字以蔽之曰:『必以情。』古人云:情長壽亦長。其信然耶」
三O 禮親王世子汲修主人能詩念舊,近致書王夢樓太史,以故人賈虞
龍孝廉詩,屬其轉寄隨園,刻入《詩話》,因夢樓與賈君本系舊交故
也。其詩尤工七古,篇長不能備錄,錄其《夢樓齋中夜話》云;「黃
葉愁風雨,青衫感歲華。年來貧到骨,久住即成家。奇數真三黜,吟
情尚八叉。多君車笠意,深夜笑言嘩。」《別內》云;「莫訝頻斟金
叵羅,匆匆馬首欲如何已遲婚嫁歡情少,為歷飢寒絮語多。聊向左家
供杖屨,休疑王粲滯關河。他時譜就《房中》曲,留得金徽好和
歌。」又句云:「夜月故人千里夢,他鄉詩思一天秋。」 方大章秀才
詩,初學明七子,後受業門下,幡然改轍,專主性靈,可謂一變至
道。近命其門人王鼎來謁,詩頗清新。《過陳山人崖居》云:「為有
殭佟癖,誅茅古洞根。山泉飛過屋,崖石巧為門。灶冷青苔長,雲屯
白晝昏。我來相揖罷,唏發淡忘言。」《過野寺》云:「片片閒雲傍
水限,方知香界少塵埃。路於紅樹叢中出,門向青山缺處開。老衲偶
然行藥去,游人都為聽泉來。偶留鴻爪題新句,一掃空廊壁上苔。」
又句云:「詩思因春長,歸心在臘先。」行盡深山方見寺,參完古佛
未逢僧。」俱佳。 三二 餘過同里與從子湘湄、笛生談詩,其二子皆
髫也,倚膝而聽,若領解者。餘問,「能詩否」其長者陶姓,呈其
《詠秋海棠》云:「初過涼雨拓窗紗,綠葉淒淒映晚霞。秋夜月明如
水好,上階先照海棠花。」其弟陶容《舟行》云;「遠望青山似白
雲,忽聞岸上有人聲。夜深那有人來到卻見扳罾一盞燈。」 三三 阮
蕓台學士提學浙中,嘗制團扇一柄,自寫折枝於上,命多士詠之。錢
塘諸生陳文傑賦《團扇詞》一篇,末句云:「歌得《合歡詞一曲,想
教留贈合歡人。」學士大加稱賞,批其旁云:「不知誰是合歡人。」
即以團扇贈之。 三四 餘過吳江梨里,愛其風俗醇美;家無司閽,以
路無乞丐也,夜戶不閉,以鄰無盜賊也,行者不乘車,不著屐,以左
右皆長廊也。士大夫互結婚姻,絲蘿不斷。家制小舟,蕩搖自便,有
古桃源風。詩人徐山民邀餘住其家三日,率其妻吳珊珊女士,雙拜為
師。二人詩,天機清妙,已分刻《同人集》及《女弟子集》中矣。又
見山民《寄內書》云:「心隨書至,何嫌十里之遙,船載人歸,當在
一更以後。」想見其唱隨風致,有劉綱夫婦之思。隨放棹吳江,訪唐
陶山明府。同行者陳秋史、徐懶雲、陳竹士、侄笛生。行至八坼,大
風阻舟,四人聯句云:「荒荒月色逼人寒,頭壓低篷擁被看。一夜北
風吹作雪,天教於此臥袁安。」如吼風聲浪欲奔,篷窗人語聽昏昏。
東船西舫相依住,一夜真成水上村。」笛生《調山民》云:「妝樓上
有女門生,應怨先生太不情。已過一更程十里,奪人夫婿一齊行。」
懶云《調竹士》云;「留人今夕且團囤,明日分飛雁影單。君欲尋梅
問消息,我能替竹報平安。」時懶云先欲辭歸,竹士托寄內子梅卿
書,故有此詩。時嘉慶丙辰十一月十三日。 三五 吳江多閨秀。徐秀
芳,彩霞,山民堂姊也,俱歸李氏,以姊妹為妯娌,唱酬無虛日,惜
皆早卒。山民僅記秀芳《重九》云;「滿簾秋色正重陽,懶去登高倚
繡床。舊日愁懷盡拋卻,近時詩思已全荒。庭梧葉落寒初動,籬菊花
開晚更香。一卷殘書聊自遣,消閒此外別無方。」彩霞《讀秀芳姊遺
稿》云:「一卷叢殘稿,蹉跎錄未成。開緘雙落淚,看殺不分明。」
又,陳素芳《春雨次韻》云;「到地初融絮點殘,灑空兼潤鵲聲幹。
暗添芳草迷香徑,盡洗新花出藥闌。簾閣夜吟窮百箭,池塘幽夢失三
竿。遙山斷浦皆生色,未怕春衫有薄寒。」{新綠》云:「煙景乍驚梅
實七,風情多學柳眠三。」素芳,即吳江茂才李會恩之聘室,未嫁而
卒。又,潘掌珍字湘蘋,《寒食對雪》云;「今年寒食雪連綿,偏遇
佳辰三月天。應是司霜憐好景,故將美玉種春田。難分飛絮盈階白,
只覺殘花點地鮮。卻笑城南游玩客,春衫空典買舟錢。」《哭豐兒》
云:「苦雨淒風暑氣微,忍寒扶病啟窗扉。偶然想到亡兒話,掩淚回
身換袷衣。兒病中常囑母當保重。」 三六 又有朱文虎字荔生者,慣
作無題詩。《閨情》云:「融字闌幹白石街,自挑花虱拔金釵。新晴
微覺莓苔滑,獨自閨房換繡鞋。」好風連夜小桃開,雌蝶雄蜂次第
來。採得盆中紅豆子,嬌憨捉臂要人猜。」又有句云:「蘆隨小港綠
三里,雲漏斜陽紅半天。」 三七 又有朱爾澄字春池者,《冬夜客
舍》云:「客舍燈殘淡月斜,夜深岑寂感年華。故園手植梅千樹,每
到花開不在家。」《過孫明府潢寓齋》云:「攜屐盤盤松徑回,疏鐘
遠渡寺門開。茶煙透處棋聲落,傲吏閒時冷客來。山擁翠鬟羅卷軸,
湖浮明鏡倒樓台。眼前便覺紅塵隔,竹下談詩坐石苔。」 三八 詩往
往有畸士賤工脫口而出者,如成容若青衣某有詩云:「一杯一杯又一
杯,主人醉倒玉山頹。主人大醉卷簾起,招入青山把客陪。」又,蘆
墟縫人吳鯤有詩云:「小雨陰陰點石苔,見花零落意徘徊。徘徊且自
掃花去,花掃不完雨又來。」 三九 無錫楊某妻薛氏,有色,嘗以詩
答夫之從弟,夫疑之,訟於府。太守巴公焚其詩,不以奸科,而許其
離異。婦有予尚幼,乃托為子之詞,呈府求複合,太守許之。楊有族
某利其財,勿許婦歸,轉訟於金匱縣尹邵無恙。邵置筆札於庭,命婦
賦詩見志。成絕句云:「人間無路事茫茫,欲訴哀衷已斷腸。一曲琵
琶千古恨,願郎留妾妾歸郎。」尹大喜,追償器用,許其複合,而令
族弟他徙,以絕後侮。判云:「因母子而夫婦重諧,不過體太守全倫
之意,遠兄弟而男女有別,亦以絕小人漁色之心。」有周生者,詠其
事云:「忍使文君怨白頭蘼蕪許為故夫留。使君身是圓通佛,消盡人
間棄婦愁。」葛洪何處返仙鳧,曾為憐才護薛姝。從此雙魚仍比目,
銜珠應傍賀家湖。」 四O 滿洲王公耐溪敬作江寧固山府,好賢禮士。
金陵詩人蔡芷衫、曹淡泉、餘秋農諸人,俱從之游。詩才清妙,雅有
唐音。今春,袖其稿來。《秦淮泛舟》云:「青鬟雅小發垂髫,戲倚
雕欄學語嬌。最是系人幽興處,絳紗窗裏篆煙飄。」《贈詩會諸友》
云:「錦繡篇成妙入神,西園清夜絕微塵。歸遲莫慮無燈月,自有文
光照見人。」 四一 吳江嚴蕊珠女子,年才十八,而聰明絕世,典環
簪為束惰,受業門下。餘問:「曾讀倉山詩否」曰:「不讀不來受業
也。他人詩,或有句無篇,或有篇無句。惟先生能兼之。尤愛先生駢
體文字。」因朗背《於忠肅廟碑》乾餘言。餘問:「此中典故頗多,
汝能知所出處乎」曰:「能知十之四五。」隨即引據某書某史,歷歷
如指掌。且曰:「人但知先生之四六用典,而不知先生之詩用典乎先
生之詩,專主性靈,故運化成語,驅使百家,人習而不察。譬如鹽在
水中,食者但知鹽味,不見有鹽也。然非讀破萬卷、且細心者,不能
指其出處。」因又歷指數聯為証。餘為駭然。因思虞仲翔云:「得一
知己,死可無恨。」餘女弟子雖二十餘人,而如蕊珠之博雅,金纖纖
之領解,席佩蘭之推尊本朝第一:皆閨中之三大知己也。蕊珠扶其母
夫人出見,年六十二歲矣。白髮飄蕭,呼餘為伯父。餘愕然。夫人
曰:「伯父抱我懷中,賜果,而忘記乎」詢之,乃李玉洲先生之女
孫,餘嘗住其家故也。記抱時夫人才四歲耳。方知人果壽長,便有呼
彭祖為小兒之意。滿座為之囅然。 四二 餘二十七歲,權知溧水。離
任時,吏民泣送,有以萬民衣披我身者,金字輝煌,皆合郡人姓名
也。車中感成一律云;「任延才學種甘棠,不料民情如許長。一路壺
漿擎父老,萬家兒女繡衣裳。早知花縣此間樂,何必玉堂天上望更喜
雙親同出境,白頭含笑說兒強。」此詩,《全集》忘載,故載之《補
遺》及《詩話》中, 四三 聖祖不飲酒,最惡吃煙。南巡,駐蹕德
州,傳旨戒煙。蔣陳錫《往水恭記》云;「碧碗水漿瀲灩開,肆筵先
已戒深杯。瑤池宴罷雲屏敞,不許人間煙火來。」 四四 嘲嗜煙者,
董竹枝云;「不惜千金買姣童,口含煙奉主人翁。看他呼吸關情甚,
步步相隨雲霧中。」又,《嘲女子吃煙者》云:「寶奩數得買花錢,
象管雕鍍估十千。近日高唐增妾夢,為雲為雨複為煙。」 四五 德清
蔡石公先生會試,有妓愛而狎之,蔡賦{羅江怨》詞以謝云:「功名
念,風月情,兩般事,日營營,幾番攪擾心難定。待要倚翠偎紅,舍
不得黃卷青燈,玉堂金馬人欽敬。欲待要附風攀龍,舍不得玉貌花
容,芙蓉帳裏恩情重。怎能兩事兼成:遂功名,又遂恩情,三杯御酒
嫦娥共。」後竟中康熙九年狀元。其詞正而不腐,故錄之。 四六 古
無自刻文集者,惟五代和凝以其文鏤板行世,人多譏之。至今庸夫淺
士,多有集行世,殊為可嗤。然素無一面,而為之代刻其詩文以行世
者,古未有也。近日滿洲趙碌亭氟德侍御,絕無交往,而為我鐫《自
壽詩》十四首,自以隸、楷二體書之,備極精工,與李調元太史同有
嗜痂之癖。二人者,吾沒齒不能忘也。至於書之改卷為頁,則始於
唐,見《萬物原始》。不可不知。 四七 周青原侍郎未第時,夢為九
天玄女召去,命題公主小像。周有警句云:「冰雪消無質,星辰系滿
頭。」玄女愛其奇麗,為周治心疾而醒。 四八 秦松齡太史詠《鶴》
云:「高鳴常向月,善舞不迎人。」世祖賞其有身份,即遷學士。 四
九 餘摘近人五言可愛之句,如費榆村之「水清魚可數,樹禿鳥來
稀」,「苔新初過雨,石古欲生云。」岑振祖《過丹陽》云:「鄉心
隨落雁,帆影過奔牛。」可稱巧對。 五O 榆村又有句云:「讀書不知
味,不如束高閣。蠹魚爾何如終日會糟粕。」此四句,可為今之崇尚
考據者,下一神針。 五一 餘年逾八十,偶病河魚之疾。醫者連用大
黃,人人搖手,餘斗膽服之,公然無恙。又病中無事,好吟自家《詩
集》。嚴歷亭司馬寄詩相嘲云:「醫學都憑放膽為,將軍專斷敵方
摧。休論功業文章事,病也無人學得來。」自家詩稿自長吟,元氣淋
漓病敢侵從此雞林論價值,少須十倍紫團參。」追算當年求挽日,重
生今始七齡人。不禁惹我疑心起,逃學兒童病不真。」 五二 豫親王
扈蹕灤河,佳句已梓入前卷中矣。其時蒲快亭孝廉從行,得詩十章。
茲錄其《過青石梁》云:「梁亙長虹起,危峰駕六鰲。不知牛、斗
近,但覺馬蹄高。嵐翠沾衣袂,岩花拂佩刀。白雲渾似海,南望首頻
搔。」《廣仁嶺》云:「飛磴盤雲上,青天豹尾懸。五丁開不到,雙
峽斷何年亭倚高霞出,山圍大漠圓。灤陽看咫尺,瑞靄落吟邊。」 五
三 嚴小秋丁巳二月十九夜,夢訪隨園。過小桃源,天暗路滑,滿地葛
藤,非平日所行之路。不數武,見二碑,苔蘚斑然,字不可識。時半
鉤殘月,樹叢中隱約有茅屋數間,一燈如豆。急趨就之,隔窗聞一女
郎吟曰:「默坐不知寒,但覺春衫薄。偶起放簾鉤,梅梢纖月落。」
又一女郎吟曰:「瘦骨禁寒恨漏長,勾人腸斷月茫茫。傷心怕聽旁人
說,依舊春風到海棠。」方欲就窗窺之,忽聞犬吠驚覺。此殆女鬼而
能詩者耶 五四 小秋妹婿張卓堂士淮,弱冠,以瘵疾亡。彌留時,執
小秋手曰:「子能代理吾詩稿,擇數句刻入隨園先生{詩話》中,吾雖
死猶生也。」餘憐其志而哀其命,選其《春雨》云:「雨聲淋瀝響空
庭,釀就輕寒洗盡春。一夜聽來眠不得,那禁愁煞惜花人。」《病
中》云:「病真空蓄三年艾,夢醒忙溫一卷書。」夜深還累妻煎藥,
僕懶翻勞客請醫。」小秋哭之云:「心高徒隕命,身死不忘名。」小
秋妹佩秋潤蘭亦能詩,贈小秋雲;「梅能傲雪香能永,楓不經霜色不
紅。」哭夫云:「身在眾中嫌贅物,心期地下伴亡人。」果不一年,
亦以疾亡。
*** END OF THE PROJECT GUTENBERG EBOOK 隨園詩話 ***
Updated editions will replace the previous one—the old editions will
be renamed.
Creating the works from print editions not protected by U.S.
copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.
START: FULL LICENSE
THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
To protect the Project Gutenberg™ mission of promoting the free
distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.
Section 1. General Terms of Use and
Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.
1.B. “Project Gutenberg” is a registered trademark. It may only be
used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E. Unless you have removed all references to Project Gutenberg:
1.E.1. The following sentence, with active links to, or other
immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
This eBook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this eBook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.
1.E.2. If an individual Project Gutenberg™ electronic work is derived
from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.
1.E.3. If an individual Project Gutenberg™ electronic work is posted
with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.
1.E.4. Do not unlink or detach or remove the full Project
Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.
1.E.5. Do not copy, display, perform, distribute or redistribute this
electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the Project
Gutenberg™ License.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
1.E.7. Do not charge a fee for access to, viewing, displaying,
performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.
1.E.8. You may charge a reasonable fee for copies of or providing
access to or distributing Project Gutenberg™ electronic works
provided that:
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You provide a full refund of any money paid by a user who
notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.
• You provide, in accordance with paragraph 1.F.3, a full refund of
any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™
electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.
1.F.
1.F.1. Project Gutenberg volunteers and employees expend
considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.
1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for
the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.
1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you
discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
1.F.5. Some states do not allow disclaimers of certain implied
warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.
1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,
the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.
Section 2. Information about the Mission
of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.
Volunteers and financial support to provide volunteers with the
assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.
Section 3. Information about the Project
Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.
The Foundation’s business office is located at 809 North 1500 West,
Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.
The Foundation is committed to complying with the laws regulating
charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.
While we cannot and do not solicit contributions from states where
we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.
International donations are gratefully accepted, but we cannot make
any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Section 5. General Information About
Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
This website includes information about Project Gutenberg™,
including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
testbankdeal.com

More Related Content

PDF
C++ How to Program 10th Edition Deitel Solutions Manual
PDF
C++ How to Program Early Objects Version 9th Edition Deitel Test Bank
DOCX
C++ Pointers with Examples.docx
PDF
C++ How to Program Early Objects Version 9th Edition Deitel Solutions Manual
PDF
C++ How to Program Early Objects Version 9th Edition Deitel Solutions Manual
PPTX
C Programming Unit-4
PPTX
Computer Programming for Engineers Spring 2023Lab 8 - Pointers.pptx
PPTX
C++ Programming Homework Help
C++ How to Program 10th Edition Deitel Solutions Manual
C++ How to Program Early Objects Version 9th Edition Deitel Test Bank
C++ Pointers with Examples.docx
C++ How to Program Early Objects Version 9th Edition Deitel Solutions Manual
C++ How to Program Early Objects Version 9th Edition Deitel Solutions Manual
C Programming Unit-4
Computer Programming for Engineers Spring 2023Lab 8 - Pointers.pptx
C++ Programming Homework Help

Similar to C++ How to Program 10th Edition Deitel Solutions Manual (20)

PDF
Java How to Program Early Objects 11th Edition Deitel Solutions Manual
PPTX
Lecture 9
PPTX
Arrays to arrays and pointers with arrays.pptx
PPT
pointers
PPTX
Lecture 5Arrays on c++ for Beginner.pptx
PPTX
Lecture-5_Arrays.pptx FOR EDUCATIONAL PURPOSE
PPT
ch08.ppt
PPTX
Structured programming Unit-6-Strings-Unit-8-Pointer.pptx
DOCX
Arrry structure Stacks in data structure
PPSX
Pointers
PPTX
Introduction to pointers in c plus plus .
DOCX
OverviewThis hands-on lab allows you to follow and experiment w.docx
PPTX
Pointers in C++ object oriented programming
PPTX
POLITEKNIK MALAYSIA
PDF
Problem Solving with C++ 9th Edition Savitch Test Bank
PPTX
week14Pointers_II. pointers pemrograman dasar C++.pptx
DOCX
Ankita sharma focp
PPTX
CPP Homework Help
PPTX
Pointer in C
PPT
Savitch Ch 07
Java How to Program Early Objects 11th Edition Deitel Solutions Manual
Lecture 9
Arrays to arrays and pointers with arrays.pptx
pointers
Lecture 5Arrays on c++ for Beginner.pptx
Lecture-5_Arrays.pptx FOR EDUCATIONAL PURPOSE
ch08.ppt
Structured programming Unit-6-Strings-Unit-8-Pointer.pptx
Arrry structure Stacks in data structure
Pointers
Introduction to pointers in c plus plus .
OverviewThis hands-on lab allows you to follow and experiment w.docx
Pointers in C++ object oriented programming
POLITEKNIK MALAYSIA
Problem Solving with C++ 9th Edition Savitch Test Bank
week14Pointers_II. pointers pemrograman dasar C++.pptx
Ankita sharma focp
CPP Homework Help
Pointer in C
Savitch Ch 07
Ad

Recently uploaded (20)

PPTX
Cell Types and Its function , kingdom of life
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Pharma ospi slides which help in ospi learning
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Institutional Correction lecture only . . .
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
Cell Types and Its function , kingdom of life
Anesthesia in Laparoscopic Surgery in India
PPH.pptx obstetrics and gynecology in nursing
Insiders guide to clinical Medicine.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
O5-L3 Freight Transport Ops (International) V1.pdf
Pharma ospi slides which help in ospi learning
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Microbial disease of the cardiovascular and lymphatic systems
Institutional Correction lecture only . . .
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Abdominal Access Techniques with Prof. Dr. R K Mishra
human mycosis Human fungal infections are called human mycosis..pptx
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
RMMM.pdf make it easy to upload and study
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Final Presentation General Medicine 03-08-2024.pptx
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Renaissance Architecture: A Journey from Faith to Humanism
102 student loan defaulters named and shamed – Is someone you know on the list?
Ad

C++ How to Program 10th Edition Deitel Solutions Manual

  • 1. Visit https://testbankdeal.com to download the full version and browse more test banks or solution manuals C++ How to Program 10th Edition Deitel Solutions Manual _____ Press the link below to begin your download _____ https://testbankdeal.com/product/c-how-to-program-10th- edition-deitel-solutions-manual/ Access testbankdeal.com now to download high-quality test banks or solution manuals
  • 2. We believe these products will be a great fit for you. Click the link to download now, or visit testbankdeal.com to discover even more! C++ How to Program 10th Edition Deitel Test Bank https://testbankdeal.com/product/c-how-to-program-10th-edition-deitel- test-bank/ C How to Program 7th Edition Deitel Solutions Manual https://testbankdeal.com/product/c-how-to-program-7th-edition-deitel- solutions-manual/ Visual C# How to Program 6th Edition Deitel Solutions Manual https://testbankdeal.com/product/visual-c-how-to-program-6th-edition- deitel-solutions-manual/ Contemporary Project Management 4th Edition Kloppenborg Solutions Manual https://testbankdeal.com/product/contemporary-project-management-4th- edition-kloppenborg-solutions-manual/
  • 3. Evaluating Practice Guidelines For The Accountable Professional 6th Edition Bloom Test Bank https://testbankdeal.com/product/evaluating-practice-guidelines-for- the-accountable-professional-6th-edition-bloom-test-bank/ Dosage Calculations Canadian 4th Edition Pickar Test Bank https://testbankdeal.com/product/dosage-calculations-canadian-4th- edition-pickar-test-bank/ Anthropology Appreciating Human Diversity 16th Edition Kottak Test Bank https://testbankdeal.com/product/anthropology-appreciating-human- diversity-16th-edition-kottak-test-bank/ Making Hard Decisions with DecisionTools 3rd Edition Clemen Solutions Manual https://testbankdeal.com/product/making-hard-decisions-with- decisiontools-3rd-edition-clemen-solutions-manual/ Business Statistics 3rd Edition Sharpe Solutions Manual https://testbankdeal.com/product/business-statistics-3rd-edition- sharpe-solutions-manual/
  • 4. Introduction to Probability and Statistics 15th Edition Mendenhall Solutions Manual https://testbankdeal.com/product/introduction-to-probability-and- statistics-15th-edition-mendenhall-solutions-manual/
  • 5. 8 Pointers O b j e c t i v e s 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 1 Wednesday, August 3, 2016 4:28 PM
  • 6. 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 2 Wednesday, August 3, 2016 4:28 PM
  • 7. 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 3 Wednesday, August 3, 2016 4:28 PM
  • 8. 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 4 Wednesday, August 3, 2016 4:28 PM
  • 9. 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 5 Wednesday, August 3, 2016 4:28 PM
  • 10. 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 6 Wednesday, August 3, 2016 4:28 PM
  • 11. 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? ANS: 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? Enter two strings: string1 string2 string1string2 cpphtp10_08.fm Page 7 Wednesday, August 3, 2016 4:28 PM
  • 12. 8 Chapter 8 Pointers 8.14 (What Does This Code Do?) What does this program do? ANS: 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 // 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? Enter a string: length 6 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 8 Wednesday, August 3, 2016 4:28 PM
  • 13. 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 9 Wednesday, August 3, 2016 4:28 PM
  • 14. 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. 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 +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. 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 10 Wednesday, August 3, 2016 4:28 PM
  • 15. 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 11 Wednesday, August 3, 2016 4:28 PM
  • 16. 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) cpphtp10_08.fm Page 12 Wednesday, August 3, 2016 4:28 PM
  • 17. Other documents randomly have different content
  • 18. 忙,不及提向瀛洲賣。」可以謂之荒唐矣! 七 宋人絕句有補採者, 如:「人老簪花不自羞,花應羞上老人頭。醉中扶過平康里,十里珠 簾半上鉤。」「一百二十四門生,春風初長羽毛成。衰翁漸老兒孫 小,他日知誰略有情。」「暮鼓晨鐘自擊撞,關門欹枕有殘缸。白灰 撥盡通紅火,臥聽蕭蕭雪打窗。」沙軟波清山路微,手持筇杖著深 衣。白鷗不信忘機久,見我猶穿岸柳飛。」塚上為亭鬼莫嗔,塚頭人 是塚中人。憑欄莫問興亡事,除卻虛空總是塵。」天一峰前是我家, 滿床書籍舊生涯。春城戀酒不歸去,老卻碧桃無限花。」閒把羅衣泣 鳳凰,先朝曾教舞衣裳。春來卻羨庭花落,得逐晴風出苑牆。」 八 每見今人知集中詩缺某體,故晚年必補作此體,以補其數:往往吃力 而不討好。不知唐人:五言工,不必再工七言也;古體工,不必再工 近體也;是以得情性之真,而成一家之盛。試觀李、杜、韓、蘇全 集,便見大概。 九 詩有見道之言,如梁元帝之「不疑行舫往,惟看 遠樹來」,庾肩吾之「只認己身往,翻疑彼岸移」:兩意相同,俱是 悟境。王梵志云:「昔我未生時,冥冥無所知。天公忽生我,生我複 何為無衣使我寒,無食使我飢。還你天公我,還我未生時。」八句是 禪家上乘。陳後山云:「美人梳洗時,滿頭間珠翠。豈知兩片雲,戴 著幾村稅」四語是《小雅》正風。 一O 胡書巢太守官罷,兩次捐複, 家資搜括已盡,第三次再捐。余寄宋人《詠被虜女子》詩云;「到底 不知顏色誤,馬前猶自買胭脂。」胡卒不聽以行,未及補官而卒。餘 為刻其《碧腴齋詩集》,而葬之於金陵瑤坊門外。有童子作《討蚊 檄》云:「成群結隊,渾家流賊之形,鼓翅高吟,滿眼時文之鬼。」 蓋憎其師之督責時文故也。語雖惡,恰有風趣。 一二 余曾兩題漂母 祠,後有所感,又作一首,云:「莫說英雄解報恩,也須早貴似王 孫。倘教漂母身先死,誰輦千金到九原」 一三 吾鄉厲太鴻與沈歸 愚,同在浙江志館,而詩派不合。餘道:厲公七古氣弱,非其所長, 然近體清妙,至今為浙派者,誰能及之如:「身披絮帽寒猶薄,才上 籃輿趣便生。」壓枝梅子多難數,過雨楊花貼地飛。」白日如年娛我 老,綠陰似水送春歸。」《入都會試途中除夕》云:「荒村已是裁春 帖,茅店還聞索酒錢。」「燭為留人遲見跋,雞防失旦故爭先。」皆
  • 19. 絕調也。 一四 唐人最重五律,所以劉長卿有「長城」之號。近日吳 門何豈匏錦專工此體。《聽鐵師彈琴》云:「抱琴來幾年,孤寺夕陽 天。往往輟殘課,泠冷調古弦。未秋先落葉,無壑忽鳴泉。自覺疏慵 甚,來聽輸鶴先。」通首一氣呵成,殊難得也。其他佳句如:「衣著 舊棉重,窗糊新紙明。」呈詩多越座,避酒或憑欄。」皆是作詩,不 是描詩。 一五 田實發進士詠《曉鐘》云:「雨雲魂夢初驚後,名利 心思未動前。」亦妙。 一六 揚州陳又群實孫{秋閨月》云:「欲眠初 卷幔,月已到床前。因怯衾稠冷,依然不敢眠。」又,《遣興》云; 「遠山明向斜陽後,春睡濃於細雨時。」甘肅吳承禧有句云:「收心 強學人端坐,改字頻忘墨倒磨。」又曰:「卻笑山居人懶甚,落花不 掃待風來。」 一七 乙卯春,餘在揚州。巡漕謝香泉侍御移尊寓所, 有夢樓侍講、香岩秀才、歌者計賦琴。門下士劉熙即席云:「謝公清 興軼雲霄,賓館移尊慰寂寥。地足騁懷寧厭小,客仍是王不須招。無 邊煙景剛三月,蓋世才人聚一宵。定有德星占太史,千秋高會續紅 橋。」「一枝玉樹冠群芳,入座題襟興倍長。從古佳人是男子,見 《東漢書,。於今問字有歌郎。計郎學詩於隨園。酒傾長夜真如海, 燈照名花別有光。細數平生游宴處,幾回似此最難忘」 一八 離隨園 數武,地名小桃源,有東岳道院羽士徐景仙直青,頗愛吟詠。《溪 上》云:「野塘深柳夕陽斜,斷岸無人噪晚鴉。風滿綠荷香不定,蜻 蜓飛上水藻花。」《漫興》云:「藥爐丹鼎伴閒身,山似屏遮樹作 鄰。自得桃源為地主,不成仙也勝凡人。」他如:「鶴聲帶月啼蕭 寺,樹裏開山對蔣山。」皆佳。 一九 枚少時雖受知於傅文忠公,而 與福敬齋公相從未侔面。前年,蒙其在西藏軍中通書問訊,見懷四 詩,情文雙美。今年五月,在楚征苗薨逝。枚不禁泣下,賦二詩哭 之。後見外孫陸昆圃代作四章,更覺莊重,遂加潤色,遠寄京師,而 自己所撰,又不忍割舍,故留於《詩話》中。云:「銅柱勛名萬口 傳,騎鯨人去未華顛。馬援力疾猶臨陣,祖逖英年早著鞭。底事三軍 剛洗甲,忽教一柱不擎天聖恩加到難加處,王爵追封到九泉。」塞外 高吟詩四章,遠教驛使寄袁羊。未曾識面成知己,才得通書便斷腸。 萬里魂歸憑馬革,九重親到奠椒漿。誰知朝野銜哀外,別有閒鷗泣數
  • 20. 行」 二O 王荊公行新法,自知民怨沸騰,乃詠《雪》云:「勢大直疑 埋地盡,功成才見放春回。村農不識仁民意,只望青天萬里開。」祖 無擇笑曰:「待到開時,民成溝中瘠矣!」荊公初召用度支判官,不 就,修起居注,不就。齎冊吏拜而求之,乃逃於廁。授知制誥,方 起。故有人見其《雪》詩而刺之,云:「不知落得幾多雪,作盡北風 無限聲。」又,詠《泉》云:「流到前溪無一語,在山作得許多 聲。」餘少時讀《荊公傳》云:「寡識不知《周禮》偽,好諛忘卻仲 尼尊。」 二— 弟香亭詩才清婉,而近日從澳門寄詩來,殊雄健,信乎 江山之助,不可少也!《渡海》云:「萬頃碧琉璃,雙瞳忽淨洗。內洋 水色碧如翡翠,至大洋則黑。數點山浮空,四面天垂水。騰身登巨 航,漸入重洋里。雨細風不生,水搖浪自起。變態出須臾,奇光閃黃 紫。濺沫潑頭上,埋舟入井底。尾低頭倏昂,左仄右複欹。人若釜內 魚,身作箕中米。惴惴忍顛危,頻頻問遐邇。出險試凝眸,得岸已在 彼。拂拭濕衣裾,檢點舊行李。回首一長籲,已渡海來矣。」《越嶺 至深澳》云:「海風大於天,海山橫截浪。山裹風輪中,人行山頂 上。風欲拔山飛,山怒與風抗。業已路斷絕,強就天依傍。頭仰方懼 壓,踵旋頓迷向。細徑曲沿邊,側身與石讓。心共懸旌搖,輿作紙鳶 放。崎嶇萬千盤,變幻頃刻狀。恥為楊朱泣,強學王尊壯。五體及百 骸,安放難穩當。官途竟至此,嗒然神氣喪。」又,《憶隨園》云: 「十年杖履暢追尋,花裏彈棋月下吟。過去何曾嫌日永,別來倏已及 春深。畫非共賞難娛目,詩未經看不放心。萬里漫言歸路遠,夢魂常 到舊山林。」 二二 余嘗有句云:「水常易涸終緣淺,山到成名畢竟 高。」偶閱《詞科掌錄》載:沈歸愚詠《北固山》云:「鐵甕日沉殘 角起,海門月暗夜潮收。」《渡江》云:「帆轉猶龍衝岸出,水聲疑 雨挾舟飛。」嚴遂成《曲谷》云;「雕盤大漠寒無影,冰裂長河夜有 聲。」《太行山》云:「孕生碧獸形何怪,壓住黃河氣不驕。」二人 四詩,皆氣體沉雄,畢竟名下無虛。 二三 燕以均年雖老,而詩極風 趣。近詠《七夕》云:「相看只隔一條河,鵲不填橋不敢過。作到神 仙還怕水,算來有巧也無多。」 二四 人但知滿口公卿者為俗,而不 知滿口不趨公卿者為尤俗,必也。素其位而行,不忮不求,無適無
  • 21. 莫,其斯謂之君子乎{唐闕史》載;中書舍人路群之高淡,給事中盧宏 正之富貴,雪中相過,所服不同,所言不同,而兩意相忘,相好特 甚。時人兩美之。余嘗與亞相莊滋圃赴尹文端公小飲,賦七古,有句 云:「赤也端章點也狂,夫子難禁莞爾笑。」 二五 宋人詩云;「梧 桐直不甘凋謝,數葉迎風尚有聲。」又云;「曾經玉貌君王寵,還擬 人看似昔時。」此四句,皆為失時者言,恰有餘味。 二六 餘少年 時,最怕早起。國初人有句云:「從來甘寢處,最是欲明天。」凡種 松者,初往上長,到五六十年後,便不銳上,而枝葉平鋪。六朝人有 句云:「泉高下溜急,松古上枝平。」每見雀鬥,必一齊下地。李鐵 君有句云;「斗禽雙墜地,交蔓各升籬。」游天台,夜聞雨,自覺敗 興,不料早起,而路已乾,可游。查他山有句云:「夢裏似曾聽雨 過,曉來仍不礙山行。」方知物理人情,無有不被古人說過者。 二七 代人悼亡,最難落筆。然古人有亡於禮者之禮,則自有亡於情者之 情。吳蘭雪《過竹士瘦吟樓哭纖纖夫人》云:「片紙吹來已斷腸,青 青潘鬢乍成霜。今生文字因緣重,此去人天離別長。三島舊游雲慘 綠,一樓殘夢月昏黃。羅衣單薄仙風冷,鶴背先愁怯晚涼。」書奩藥 裹亂成堆,日日題箋傍鏡台。一代紅妝歸間氣,九閨彩筆杖仙才。生 前手草教親定,病裏心花更怒開。聞說前宵猶強坐,挑燈為和一詩 來。」文採誰傳絳幔經,寄生小鳳乍梳翎。夫人繼沈散花女史女風珍 為女。床前詩卷拋猶滿,畫裏眉峰慘不青。蝴蝶飄來秋影瘦,水仙夢 到夜涼醒。旁人只賞流傳句,不管酸心不要聽。」 二八 金陵燕子磯 有永濟寺,往來士大夫,往往阻風小泊,輒有題句。國朝相國張文端 英、鄂文端爾泰,墨跡淋漓,尚存僧舍。老僧默默,曾刻一集,竟被 火焚。餘二十七歲游此寺,今八十一矣。今春又為風阻,遣家人抄 存。尹少宰會一云:「芙蓉幾朵領花宮,鐘磐聲高遞遠風。一嶺白雲 歸老納,半潭秋水住漁翁。香林鳥語天機活,古塔龍吟地勢雄。為問 攢眉陶處士,可能大醉與禪通」收纜停舟燕子磯,穿雲拾級叩僧扉。 遠公卓錫閒隨鶴,惠海蓬頭自補衣。欲向三乘窺妙相,卻因一語悟真 機。此間早識黃梅熟,何必風幡問是非」張宗伯廷璐云:「一徑秋陰 蹋蘚苔,翠蘿深處寺門開。懸岩石色窗中出,繞閣江聲樹杪來。露有
  • 22. 禪房容徙倚,尚留先澤重徘徊。流光五十餘年事,又到蒲公舊講台。 康熙壬戌,先公有《贈蒲公和尚,詩。」李炯云:「偶因江水阻,散 步過林巔。霧隱三台洞,雲生一線天。倚松驚戲鼠,坐石盥流泉。惟 愛鐘山色,朝朝作紫煙。」又:「山開榆力健,橋仄柳身支。」亦 佳。 二九 金纖纖女子詩才既佳,而神解尤超。或問曰;「當今詩 人,推兩大家,袁、蔣並稱,何以袁詩遠至海外,近至閨門,俱喜讀 之,而能讀蔣詩者寥寥」纖纖曰:「樂有八音,金、石、絲、竹、 匏、土、革、木,皆正聲也。然人多愛聽金,石、絲、竹,而不甚喜 聽匏,土、革,木。於試操此意,以讀兩家之詩,則任、沈之是非, 即邢、魏之優劣矣。」人以為知言。纖纖又語其郎君竹士云:「聖人 曰,『《詩》三百,一言以蔽之,曰思無邪。』余讀袁公詩,取《左 傳》三字以蔽之曰:『必以情。』古人云:情長壽亦長。其信然耶」 三O 禮親王世子汲修主人能詩念舊,近致書王夢樓太史,以故人賈虞 龍孝廉詩,屬其轉寄隨園,刻入《詩話》,因夢樓與賈君本系舊交故 也。其詩尤工七古,篇長不能備錄,錄其《夢樓齋中夜話》云;「黃 葉愁風雨,青衫感歲華。年來貧到骨,久住即成家。奇數真三黜,吟 情尚八叉。多君車笠意,深夜笑言嘩。」《別內》云;「莫訝頻斟金 叵羅,匆匆馬首欲如何已遲婚嫁歡情少,為歷飢寒絮語多。聊向左家 供杖屨,休疑王粲滯關河。他時譜就《房中》曲,留得金徽好和 歌。」又句云:「夜月故人千里夢,他鄉詩思一天秋。」 方大章秀才 詩,初學明七子,後受業門下,幡然改轍,專主性靈,可謂一變至 道。近命其門人王鼎來謁,詩頗清新。《過陳山人崖居》云:「為有 殭佟癖,誅茅古洞根。山泉飛過屋,崖石巧為門。灶冷青苔長,雲屯 白晝昏。我來相揖罷,唏發淡忘言。」《過野寺》云:「片片閒雲傍 水限,方知香界少塵埃。路於紅樹叢中出,門向青山缺處開。老衲偶 然行藥去,游人都為聽泉來。偶留鴻爪題新句,一掃空廊壁上苔。」 又句云:「詩思因春長,歸心在臘先。」行盡深山方見寺,參完古佛 未逢僧。」俱佳。 三二 餘過同里與從子湘湄、笛生談詩,其二子皆 髫也,倚膝而聽,若領解者。餘問,「能詩否」其長者陶姓,呈其 《詠秋海棠》云:「初過涼雨拓窗紗,綠葉淒淒映晚霞。秋夜月明如
  • 23. 水好,上階先照海棠花。」其弟陶容《舟行》云;「遠望青山似白 雲,忽聞岸上有人聲。夜深那有人來到卻見扳罾一盞燈。」 三三 阮 蕓台學士提學浙中,嘗制團扇一柄,自寫折枝於上,命多士詠之。錢 塘諸生陳文傑賦《團扇詞》一篇,末句云:「歌得《合歡詞一曲,想 教留贈合歡人。」學士大加稱賞,批其旁云:「不知誰是合歡人。」 即以團扇贈之。 三四 餘過吳江梨里,愛其風俗醇美;家無司閽,以 路無乞丐也,夜戶不閉,以鄰無盜賊也,行者不乘車,不著屐,以左 右皆長廊也。士大夫互結婚姻,絲蘿不斷。家制小舟,蕩搖自便,有 古桃源風。詩人徐山民邀餘住其家三日,率其妻吳珊珊女士,雙拜為 師。二人詩,天機清妙,已分刻《同人集》及《女弟子集》中矣。又 見山民《寄內書》云:「心隨書至,何嫌十里之遙,船載人歸,當在 一更以後。」想見其唱隨風致,有劉綱夫婦之思。隨放棹吳江,訪唐 陶山明府。同行者陳秋史、徐懶雲、陳竹士、侄笛生。行至八坼,大 風阻舟,四人聯句云:「荒荒月色逼人寒,頭壓低篷擁被看。一夜北 風吹作雪,天教於此臥袁安。」如吼風聲浪欲奔,篷窗人語聽昏昏。 東船西舫相依住,一夜真成水上村。」笛生《調山民》云:「妝樓上 有女門生,應怨先生太不情。已過一更程十里,奪人夫婿一齊行。」 懶云《調竹士》云;「留人今夕且團囤,明日分飛雁影單。君欲尋梅 問消息,我能替竹報平安。」時懶云先欲辭歸,竹士托寄內子梅卿 書,故有此詩。時嘉慶丙辰十一月十三日。 三五 吳江多閨秀。徐秀 芳,彩霞,山民堂姊也,俱歸李氏,以姊妹為妯娌,唱酬無虛日,惜 皆早卒。山民僅記秀芳《重九》云;「滿簾秋色正重陽,懶去登高倚 繡床。舊日愁懷盡拋卻,近時詩思已全荒。庭梧葉落寒初動,籬菊花 開晚更香。一卷殘書聊自遣,消閒此外別無方。」彩霞《讀秀芳姊遺 稿》云:「一卷叢殘稿,蹉跎錄未成。開緘雙落淚,看殺不分明。」 又,陳素芳《春雨次韻》云;「到地初融絮點殘,灑空兼潤鵲聲幹。 暗添芳草迷香徑,盡洗新花出藥闌。簾閣夜吟窮百箭,池塘幽夢失三 竿。遙山斷浦皆生色,未怕春衫有薄寒。」{新綠》云:「煙景乍驚梅 實七,風情多學柳眠三。」素芳,即吳江茂才李會恩之聘室,未嫁而 卒。又,潘掌珍字湘蘋,《寒食對雪》云;「今年寒食雪連綿,偏遇
  • 24. 佳辰三月天。應是司霜憐好景,故將美玉種春田。難分飛絮盈階白, 只覺殘花點地鮮。卻笑城南游玩客,春衫空典買舟錢。」《哭豐兒》 云:「苦雨淒風暑氣微,忍寒扶病啟窗扉。偶然想到亡兒話,掩淚回 身換袷衣。兒病中常囑母當保重。」 三六 又有朱文虎字荔生者,慣 作無題詩。《閨情》云:「融字闌幹白石街,自挑花虱拔金釵。新晴 微覺莓苔滑,獨自閨房換繡鞋。」好風連夜小桃開,雌蝶雄蜂次第 來。採得盆中紅豆子,嬌憨捉臂要人猜。」又有句云:「蘆隨小港綠 三里,雲漏斜陽紅半天。」 三七 又有朱爾澄字春池者,《冬夜客 舍》云:「客舍燈殘淡月斜,夜深岑寂感年華。故園手植梅千樹,每 到花開不在家。」《過孫明府潢寓齋》云:「攜屐盤盤松徑回,疏鐘 遠渡寺門開。茶煙透處棋聲落,傲吏閒時冷客來。山擁翠鬟羅卷軸, 湖浮明鏡倒樓台。眼前便覺紅塵隔,竹下談詩坐石苔。」 三八 詩往 往有畸士賤工脫口而出者,如成容若青衣某有詩云:「一杯一杯又一 杯,主人醉倒玉山頹。主人大醉卷簾起,招入青山把客陪。」又,蘆 墟縫人吳鯤有詩云:「小雨陰陰點石苔,見花零落意徘徊。徘徊且自 掃花去,花掃不完雨又來。」 三九 無錫楊某妻薛氏,有色,嘗以詩 答夫之從弟,夫疑之,訟於府。太守巴公焚其詩,不以奸科,而許其 離異。婦有予尚幼,乃托為子之詞,呈府求複合,太守許之。楊有族 某利其財,勿許婦歸,轉訟於金匱縣尹邵無恙。邵置筆札於庭,命婦 賦詩見志。成絕句云:「人間無路事茫茫,欲訴哀衷已斷腸。一曲琵 琶千古恨,願郎留妾妾歸郎。」尹大喜,追償器用,許其複合,而令 族弟他徙,以絕後侮。判云:「因母子而夫婦重諧,不過體太守全倫 之意,遠兄弟而男女有別,亦以絕小人漁色之心。」有周生者,詠其 事云:「忍使文君怨白頭蘼蕪許為故夫留。使君身是圓通佛,消盡人 間棄婦愁。」葛洪何處返仙鳧,曾為憐才護薛姝。從此雙魚仍比目, 銜珠應傍賀家湖。」 四O 滿洲王公耐溪敬作江寧固山府,好賢禮士。 金陵詩人蔡芷衫、曹淡泉、餘秋農諸人,俱從之游。詩才清妙,雅有 唐音。今春,袖其稿來。《秦淮泛舟》云:「青鬟雅小發垂髫,戲倚 雕欄學語嬌。最是系人幽興處,絳紗窗裏篆煙飄。」《贈詩會諸友》 云:「錦繡篇成妙入神,西園清夜絕微塵。歸遲莫慮無燈月,自有文
  • 25. 光照見人。」 四一 吳江嚴蕊珠女子,年才十八,而聰明絕世,典環 簪為束惰,受業門下。餘問:「曾讀倉山詩否」曰:「不讀不來受業 也。他人詩,或有句無篇,或有篇無句。惟先生能兼之。尤愛先生駢 體文字。」因朗背《於忠肅廟碑》乾餘言。餘問:「此中典故頗多, 汝能知所出處乎」曰:「能知十之四五。」隨即引據某書某史,歷歷 如指掌。且曰:「人但知先生之四六用典,而不知先生之詩用典乎先 生之詩,專主性靈,故運化成語,驅使百家,人習而不察。譬如鹽在 水中,食者但知鹽味,不見有鹽也。然非讀破萬卷、且細心者,不能 指其出處。」因又歷指數聯為証。餘為駭然。因思虞仲翔云:「得一 知己,死可無恨。」餘女弟子雖二十餘人,而如蕊珠之博雅,金纖纖 之領解,席佩蘭之推尊本朝第一:皆閨中之三大知己也。蕊珠扶其母 夫人出見,年六十二歲矣。白髮飄蕭,呼餘為伯父。餘愕然。夫人 曰:「伯父抱我懷中,賜果,而忘記乎」詢之,乃李玉洲先生之女 孫,餘嘗住其家故也。記抱時夫人才四歲耳。方知人果壽長,便有呼 彭祖為小兒之意。滿座為之囅然。 四二 餘二十七歲,權知溧水。離 任時,吏民泣送,有以萬民衣披我身者,金字輝煌,皆合郡人姓名 也。車中感成一律云;「任延才學種甘棠,不料民情如許長。一路壺 漿擎父老,萬家兒女繡衣裳。早知花縣此間樂,何必玉堂天上望更喜 雙親同出境,白頭含笑說兒強。」此詩,《全集》忘載,故載之《補 遺》及《詩話》中, 四三 聖祖不飲酒,最惡吃煙。南巡,駐蹕德 州,傳旨戒煙。蔣陳錫《往水恭記》云;「碧碗水漿瀲灩開,肆筵先 已戒深杯。瑤池宴罷雲屏敞,不許人間煙火來。」 四四 嘲嗜煙者, 董竹枝云;「不惜千金買姣童,口含煙奉主人翁。看他呼吸關情甚, 步步相隨雲霧中。」又,《嘲女子吃煙者》云:「寶奩數得買花錢, 象管雕鍍估十千。近日高唐增妾夢,為雲為雨複為煙。」 四五 德清 蔡石公先生會試,有妓愛而狎之,蔡賦{羅江怨》詞以謝云:「功名 念,風月情,兩般事,日營營,幾番攪擾心難定。待要倚翠偎紅,舍 不得黃卷青燈,玉堂金馬人欽敬。欲待要附風攀龍,舍不得玉貌花 容,芙蓉帳裏恩情重。怎能兩事兼成:遂功名,又遂恩情,三杯御酒 嫦娥共。」後竟中康熙九年狀元。其詞正而不腐,故錄之。 四六 古
  • 26. 無自刻文集者,惟五代和凝以其文鏤板行世,人多譏之。至今庸夫淺 士,多有集行世,殊為可嗤。然素無一面,而為之代刻其詩文以行世 者,古未有也。近日滿洲趙碌亭氟德侍御,絕無交往,而為我鐫《自 壽詩》十四首,自以隸、楷二體書之,備極精工,與李調元太史同有 嗜痂之癖。二人者,吾沒齒不能忘也。至於書之改卷為頁,則始於 唐,見《萬物原始》。不可不知。 四七 周青原侍郎未第時,夢為九 天玄女召去,命題公主小像。周有警句云:「冰雪消無質,星辰系滿 頭。」玄女愛其奇麗,為周治心疾而醒。 四八 秦松齡太史詠《鶴》 云:「高鳴常向月,善舞不迎人。」世祖賞其有身份,即遷學士。 四 九 餘摘近人五言可愛之句,如費榆村之「水清魚可數,樹禿鳥來 稀」,「苔新初過雨,石古欲生云。」岑振祖《過丹陽》云:「鄉心 隨落雁,帆影過奔牛。」可稱巧對。 五O 榆村又有句云:「讀書不知 味,不如束高閣。蠹魚爾何如終日會糟粕。」此四句,可為今之崇尚 考據者,下一神針。 五一 餘年逾八十,偶病河魚之疾。醫者連用大 黃,人人搖手,餘斗膽服之,公然無恙。又病中無事,好吟自家《詩 集》。嚴歷亭司馬寄詩相嘲云:「醫學都憑放膽為,將軍專斷敵方 摧。休論功業文章事,病也無人學得來。」自家詩稿自長吟,元氣淋 漓病敢侵從此雞林論價值,少須十倍紫團參。」追算當年求挽日,重 生今始七齡人。不禁惹我疑心起,逃學兒童病不真。」 五二 豫親王 扈蹕灤河,佳句已梓入前卷中矣。其時蒲快亭孝廉從行,得詩十章。 茲錄其《過青石梁》云:「梁亙長虹起,危峰駕六鰲。不知牛、斗 近,但覺馬蹄高。嵐翠沾衣袂,岩花拂佩刀。白雲渾似海,南望首頻 搔。」《廣仁嶺》云:「飛磴盤雲上,青天豹尾懸。五丁開不到,雙 峽斷何年亭倚高霞出,山圍大漠圓。灤陽看咫尺,瑞靄落吟邊。」 五 三 嚴小秋丁巳二月十九夜,夢訪隨園。過小桃源,天暗路滑,滿地葛 藤,非平日所行之路。不數武,見二碑,苔蘚斑然,字不可識。時半 鉤殘月,樹叢中隱約有茅屋數間,一燈如豆。急趨就之,隔窗聞一女 郎吟曰:「默坐不知寒,但覺春衫薄。偶起放簾鉤,梅梢纖月落。」 又一女郎吟曰:「瘦骨禁寒恨漏長,勾人腸斷月茫茫。傷心怕聽旁人 說,依舊春風到海棠。」方欲就窗窺之,忽聞犬吠驚覺。此殆女鬼而
  • 28. *** END OF THE PROJECT GUTENBERG EBOOK 隨園詩話 *** Updated editions will replace the previous one—the old editions will be renamed. Creating the works from print editions not protected by U.S. copyright law means that no one owns a United States copyright in these works, so the Foundation (and you!) can copy and distribute it in the United States without permission and without paying copyright royalties. Special rules, set forth in the General Terms of Use part of this license, apply to copying and distributing Project Gutenberg™ electronic works to protect the PROJECT GUTENBERG™ concept and trademark. Project Gutenberg is a registered trademark, and may not be used if you charge for an eBook, except by following the terms of the trademark license, including paying royalties for use of the Project Gutenberg trademark. If you do not charge anything for copies of this eBook, complying with the trademark license is very easy. You may use this eBook for nearly any purpose such as creation of derivative works, reports, performances and research. Project Gutenberg eBooks may be modified and printed and given away—you may do practically ANYTHING in the United States with eBooks not protected by U.S. copyright law. Redistribution is subject to the trademark license, especially commercial redistribution. START: FULL LICENSE
  • 29. THE FULL PROJECT GUTENBERG LICENSE
  • 30. PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK To protect the Project Gutenberg™ mission of promoting the free distribution of electronic works, by using or distributing this work (or any other work associated in any way with the phrase “Project Gutenberg”), you agree to comply with all the terms of the Full Project Gutenberg™ License available with this file or online at www.gutenberg.org/license. Section 1. General Terms of Use and Redistributing Project Gutenberg™ electronic works 1.A. By reading or using any part of this Project Gutenberg™ electronic work, you indicate that you have read, understand, agree to and accept all the terms of this license and intellectual property (trademark/copyright) agreement. If you do not agree to abide by all the terms of this agreement, you must cease using and return or destroy all copies of Project Gutenberg™ electronic works in your possession. If you paid a fee for obtaining a copy of or access to a Project Gutenberg™ electronic work and you do not agree to be bound by the terms of this agreement, you may obtain a refund from the person or entity to whom you paid the fee as set forth in paragraph 1.E.8. 1.B. “Project Gutenberg” is a registered trademark. It may only be used on or associated in any way with an electronic work by people who agree to be bound by the terms of this agreement. There are a few things that you can do with most Project Gutenberg™ electronic works even without complying with the full terms of this agreement. See paragraph 1.C below. There are a lot of things you can do with Project Gutenberg™ electronic works if you follow the terms of this agreement and help preserve free future access to Project Gutenberg™ electronic works. See paragraph 1.E below.
  • 31. 1.C. The Project Gutenberg Literary Archive Foundation (“the Foundation” or PGLAF), owns a compilation copyright in the collection of Project Gutenberg™ electronic works. Nearly all the individual works in the collection are in the public domain in the United States. If an individual work is unprotected by copyright law in the United States and you are located in the United States, we do not claim a right to prevent you from copying, distributing, performing, displaying or creating derivative works based on the work as long as all references to Project Gutenberg are removed. Of course, we hope that you will support the Project Gutenberg™ mission of promoting free access to electronic works by freely sharing Project Gutenberg™ works in compliance with the terms of this agreement for keeping the Project Gutenberg™ name associated with the work. You can easily comply with the terms of this agreement by keeping this work in the same format with its attached full Project Gutenberg™ License when you share it without charge with others. 1.D. The copyright laws of the place where you are located also govern what you can do with this work. Copyright laws in most countries are in a constant state of change. If you are outside the United States, check the laws of your country in addition to the terms of this agreement before downloading, copying, displaying, performing, distributing or creating derivative works based on this work or any other Project Gutenberg™ work. The Foundation makes no representations concerning the copyright status of any work in any country other than the United States. 1.E. Unless you have removed all references to Project Gutenberg: 1.E.1. The following sentence, with active links to, or other immediate access to, the full Project Gutenberg™ License must appear prominently whenever any copy of a Project Gutenberg™ work (any work on which the phrase “Project Gutenberg” appears, or with which the phrase “Project Gutenberg” is associated) is accessed, displayed, performed, viewed, copied or distributed:
  • 32. This eBook is for the use of anyone anywhere in the United States and most other parts of the world at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org. If you are not located in the United States, you will have to check the laws of the country where you are located before using this eBook. 1.E.2. If an individual Project Gutenberg™ electronic work is derived from texts not protected by U.S. copyright law (does not contain a notice indicating that it is posted with permission of the copyright holder), the work can be copied and distributed to anyone in the United States without paying any fees or charges. If you are redistributing or providing access to a work with the phrase “Project Gutenberg” associated with or appearing on the work, you must comply either with the requirements of paragraphs 1.E.1 through 1.E.7 or obtain permission for the use of the work and the Project Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9. 1.E.3. If an individual Project Gutenberg™ electronic work is posted with the permission of the copyright holder, your use and distribution must comply with both paragraphs 1.E.1 through 1.E.7 and any additional terms imposed by the copyright holder. Additional terms will be linked to the Project Gutenberg™ License for all works posted with the permission of the copyright holder found at the beginning of this work. 1.E.4. Do not unlink or detach or remove the full Project Gutenberg™ License terms from this work, or any files containing a part of this work or any other work associated with Project Gutenberg™. 1.E.5. Do not copy, display, perform, distribute or redistribute this electronic work, or any part of this electronic work, without prominently displaying the sentence set forth in paragraph 1.E.1
  • 33. with active links or immediate access to the full terms of the Project Gutenberg™ License. 1.E.6. You may convert to and distribute this work in any binary, compressed, marked up, nonproprietary or proprietary form, including any word processing or hypertext form. However, if you provide access to or distribute copies of a Project Gutenberg™ work in a format other than “Plain Vanilla ASCII” or other format used in the official version posted on the official Project Gutenberg™ website (www.gutenberg.org), you must, at no additional cost, fee or expense to the user, provide a copy, a means of exporting a copy, or a means of obtaining a copy upon request, of the work in its original “Plain Vanilla ASCII” or other form. Any alternate format must include the full Project Gutenberg™ License as specified in paragraph 1.E.1. 1.E.7. Do not charge a fee for access to, viewing, displaying, performing, copying or distributing any Project Gutenberg™ works unless you comply with paragraph 1.E.8 or 1.E.9. 1.E.8. You may charge a reasonable fee for copies of or providing access to or distributing Project Gutenberg™ electronic works provided that: • You pay a royalty fee of 20% of the gross profits you derive from the use of Project Gutenberg™ works calculated using the method you already use to calculate your applicable taxes. The fee is owed to the owner of the Project Gutenberg™ trademark, but he has agreed to donate royalties under this paragraph to the Project Gutenberg Literary Archive Foundation. Royalty payments must be paid within 60 days following each date on which you prepare (or are legally required to prepare) your periodic tax returns. Royalty payments should be clearly marked as such and sent to the Project Gutenberg Literary Archive Foundation at the address specified in Section 4, “Information
  • 34. about donations to the Project Gutenberg Literary Archive Foundation.” • You provide a full refund of any money paid by a user who notifies you in writing (or by e-mail) within 30 days of receipt that s/he does not agree to the terms of the full Project Gutenberg™ License. You must require such a user to return or destroy all copies of the works possessed in a physical medium and discontinue all use of and all access to other copies of Project Gutenberg™ works. • You provide, in accordance with paragraph 1.F.3, a full refund of any money paid for a work or a replacement copy, if a defect in the electronic work is discovered and reported to you within 90 days of receipt of the work. • You comply with all other terms of this agreement for free distribution of Project Gutenberg™ works. 1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™ electronic work or group of works on different terms than are set forth in this agreement, you must obtain permission in writing from the Project Gutenberg Literary Archive Foundation, the manager of the Project Gutenberg™ trademark. Contact the Foundation as set forth in Section 3 below. 1.F. 1.F.1. Project Gutenberg volunteers and employees expend considerable effort to identify, do copyright research on, transcribe and proofread works not protected by U.S. copyright law in creating the Project Gutenberg™ collection. Despite these efforts, Project Gutenberg™ electronic works, and the medium on which they may be stored, may contain “Defects,” such as, but not limited to, incomplete, inaccurate or corrupt data, transcription errors, a copyright or other intellectual property infringement, a defective or
  • 35. damaged disk or other medium, a computer virus, or computer codes that damage or cannot be read by your equipment. 1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the “Right of Replacement or Refund” described in paragraph 1.F.3, the Project Gutenberg Literary Archive Foundation, the owner of the Project Gutenberg™ trademark, and any other party distributing a Project Gutenberg™ electronic work under this agreement, disclaim all liability to you for damages, costs and expenses, including legal fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE. 1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a defect in this electronic work within 90 days of receiving it, you can receive a refund of the money (if any) you paid for it by sending a written explanation to the person you received the work from. If you received the work on a physical medium, you must return the medium with your written explanation. The person or entity that provided you with the defective work may elect to provide a replacement copy in lieu of a refund. If you received the work electronically, the person or entity providing it to you may choose to give you a second opportunity to receive the work electronically in lieu of a refund. If the second copy is also defective, you may demand a refund in writing without further opportunities to fix the problem. 1.F.4. Except for the limited right of replacement or refund set forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
  • 36. INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PURPOSE. 1.F.5. Some states do not allow disclaimers of certain implied warranties or the exclusion or limitation of certain types of damages. If any disclaimer or limitation set forth in this agreement violates the law of the state applicable to this agreement, the agreement shall be interpreted to make the maximum disclaimer or limitation permitted by the applicable state law. The invalidity or unenforceability of any provision of this agreement shall not void the remaining provisions. 1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the trademark owner, any agent or employee of the Foundation, anyone providing copies of Project Gutenberg™ electronic works in accordance with this agreement, and any volunteers associated with the production, promotion and distribution of Project Gutenberg™ electronic works, harmless from all liability, costs and expenses, including legal fees, that arise directly or indirectly from any of the following which you do or cause to occur: (a) distribution of this or any Project Gutenberg™ work, (b) alteration, modification, or additions or deletions to any Project Gutenberg™ work, and (c) any Defect you cause. Section 2. Information about the Mission of Project Gutenberg™ Project Gutenberg™ is synonymous with the free distribution of electronic works in formats readable by the widest variety of computers including obsolete, old, middle-aged and new computers. It exists because of the efforts of hundreds of volunteers and donations from people in all walks of life. Volunteers and financial support to provide volunteers with the assistance they need are critical to reaching Project Gutenberg™’s goals and ensuring that the Project Gutenberg™ collection will
  • 37. remain freely available for generations to come. In 2001, the Project Gutenberg Literary Archive Foundation was created to provide a secure and permanent future for Project Gutenberg™ and future generations. To learn more about the Project Gutenberg Literary Archive Foundation and how your efforts and donations can help, see Sections 3 and 4 and the Foundation information page at www.gutenberg.org. Section 3. Information about the Project Gutenberg Literary Archive Foundation The Project Gutenberg Literary Archive Foundation is a non-profit 501(c)(3) educational corporation organized under the laws of the state of Mississippi and granted tax exempt status by the Internal Revenue Service. The Foundation’s EIN or federal tax identification number is 64-6221541. Contributions to the Project Gutenberg Literary Archive Foundation are tax deductible to the full extent permitted by U.S. federal laws and your state’s laws. The Foundation’s business office is located at 809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up to date contact information can be found at the Foundation’s website and official page at www.gutenberg.org/contact Section 4. Information about Donations to the Project Gutenberg Literary Archive Foundation Project Gutenberg™ depends upon and cannot survive without widespread public support and donations to carry out its mission of increasing the number of public domain and licensed works that can be freely distributed in machine-readable form accessible by the widest array of equipment including outdated equipment. Many
  • 38. small donations ($1 to $5,000) are particularly important to maintaining tax exempt status with the IRS. The Foundation is committed to complying with the laws regulating charities and charitable donations in all 50 states of the United States. Compliance requirements are not uniform and it takes a considerable effort, much paperwork and many fees to meet and keep up with these requirements. We do not solicit donations in locations where we have not received written confirmation of compliance. To SEND DONATIONS or determine the status of compliance for any particular state visit www.gutenberg.org/donate. While we cannot and do not solicit contributions from states where we have not met the solicitation requirements, we know of no prohibition against accepting unsolicited donations from donors in such states who approach us with offers to donate. International donations are gratefully accepted, but we cannot make any statements concerning tax treatment of donations received from outside the United States. U.S. laws alone swamp our small staff. Please check the Project Gutenberg web pages for current donation methods and addresses. Donations are accepted in a number of other ways including checks, online payments and credit card donations. To donate, please visit: www.gutenberg.org/donate. Section 5. General Information About Project Gutenberg™ electronic works Professor Michael S. Hart was the originator of the Project Gutenberg™ concept of a library of electronic works that could be freely shared with anyone. For forty years, he produced and distributed Project Gutenberg™ eBooks with only a loose network of volunteer support.
  • 39. Project Gutenberg™ eBooks are often created from several printed editions, all of which are confirmed as not protected by copyright in the U.S. unless a copyright notice is included. Thus, we do not necessarily keep eBooks in compliance with any particular paper edition. Most people start at our website which has the main PG search facility: www.gutenberg.org. This website includes information about Project Gutenberg™, including how to make donations to the Project Gutenberg Literary Archive Foundation, how to help produce our new eBooks, and how to subscribe to our email newsletter to hear about new eBooks.
  • 40. Welcome to our website – the perfect destination for book lovers and knowledge seekers. We believe that every book holds a new world, offering opportunities for learning, discovery, and personal growth. That’s why we are dedicated to bringing you a diverse collection of books, ranging from classic literature and specialized publications to self-development guides and children's books. More than just a book-buying platform, we strive to be a bridge connecting you with timeless cultural and intellectual values. With an elegant, user-friendly interface and a smart search system, you can quickly find the books that best suit your interests. Additionally, our special promotions and home delivery services help you save time and fully enjoy the joy of reading. Join us on a journey of knowledge exploration, passion nurturing, and personal growth every day! testbankdeal.com