易码技术论坛

 找回密码
 加入易码
搜索
楼主: 亚森罗宾

EMAX两周岁庆祝活动----灌水嘉年华,盖楼拿奖励

 关闭 [复制链接]
发表于 2006-8-29 17:34:14 | 显示全部楼层
灌水预防机制已经关闭,在15秒内能发贴
发表于 2006-8-29 17:34:43 | 显示全部楼层


中国顶级黑客联络图


什么是黑客?只会使用工具来入侵的就叫黑客?下面这些才是黑客!排名不分先后。
  网名:Coolfire
  联系方法:cool.fire@msa.hinet.net
  一个台湾籍黑客。出名之做便是那8篇黑客入门文章,给众多菜鸟带来了福音。而当时还是中国黑客成长的初期。此人被人们定为中国第一代黑客。
  网名:小榕
  个人站点:

http://www.netxeyes.org


  提起这个名字,人们就会想到流光。这个当年让菜鸟入侵无数主机的武器遍出自小榕之手。小榕是高级程序员,所以精通的是软件开发和程序制作。流光,乱刀,溺雪及SQL注入工具为小榕代表做。榕哥是中国第二代黑客的代表人物。
  网名:flashsky
  联系方法:

flashsky@xfocus.org

QQ:16202253
  安全焦点核心成员。windows编程好手,对缓冲区溢出漏洞原理及利用非常有研究。就职于启明星辰。大专文化。曾一连公布微软windows操作系统多个漏洞的公告,并且做了分析。另人非常佩服。flashsky大部分文章属于漏洞分析。比如《RPC文件名长度堆溢出分析及其通用性堆溢出攻击的一些发现》等。此人偏爱吟诗作对。活跃于安全焦点论坛。
  网名:tombkeeper
  联系方法:

tombkeeper@xfocus.org

  个人主页:

http://blog.xfocus.net/index.php?blogId=9


  安全焦点核心成员。非常精通windows和女性相关知识,人称妇科圣爪。人很好。是安全焦点论坛技术探究版的斑竹。也是绿盟灌水区的版主。目前就职与绿盟的公司。作品有蠕虫分析等等。活跃于安全焦点论坛。语言幽默而意义深刻独特。
  网名:lion
  联系方法:

lion@cnhonker.com

QQ:21509
  原中国红客联盟站长。2001年中美黑客大战一战成名,文明于世。暂居广州,常出车祸。熟悉linux及C语言编程,PHP等脚本编写,对入侵有些研究,写的EXPLOIT不少。前段时间解散红盟。后,此人消失,直至写此文章之时,仍然在网上没有任何消息。这个人可以说是中国第三代黑客(2001年起步的一代)。
  网名:glacier,冰河
  联系方法:

glacier@xfocus.org

  个人站点:

http://blog.xfocus.net/index.php?blogId=15


  安全焦点的核心成员。冰河木马与X-scan的作者。中国木马的爸爸。在编程上的功夫非常的深。windows编程技术很硬。文章不多,不过工具非常实用。目前与wollf生活美满,很幸福。常活跃于安全焦点论坛,灌水的时候不多。中国第二代黑客(98-99年的一带)。
  网名:isno
  联系方法:

isno@xfocus.org

QQ:1070681
  安全焦点的核心成员,对漏洞及溢出有些研究,写过不少漏洞分析。比如WEBDAV和IDQ,IDA漏洞溢出的分析。也写过EXPLOIT。目前生活在北京。很少在焦点的论坛活动。再下对此人了解也少。
网名:sinister
  联系方法:sinister@whitecell.org QQ:3350124
  熟悉WINDOWS编程,对WINDOWS KERNEL很有研究。写过的文章都很精彩,而且技术含量超高。在论坛上很少灌水。《任意用户模式下执行 ring 0 代码》《内核级HOOK的几种实现与应用 》等等都出自他的手笔。少言寡语,不过人还不错。不喜欢闲聊。
  网名:eagle
  中国鹰派的站长,著名的linux hacker.对linux很有研究,是白细胞的成员。毕业于北京北方交通大学经济管理系会计学专业。当年也参与过中美黑客大战,他的组织与红客联盟齐名。对入侵也颇有些研究。中国第三代黑客。
  网名:***7
  联系方法:[email=***7@xfocus.org]***7@xfocus.org[/email]
  个人站点:

http://blog.xfocus.net/index.php?blogId=12



http://elfhack.whitecell.org/


  安全焦点核心成员。对溢出很有研究,不过很少炮头路面。所以知道他的人不多,不过技术觉得很高,不可多得的人才哦。而且此人对系统内核也颇有研究。linux windows都不错。不过很少上论坛,与他交流很困难。只能通MAIL了。
  网名:袁哥,yuange
  联系方法:

yuange@nsfocus.com

  说起这个人,大家肯定不会陌生。绿盟的高手,对windows内核及编程都非常有研究,技术很高。也许由于工作原因,很少登陆论坛。不过跟w3比,他还算很好。不过与此人沟通最好是面对面,很多人给他写过电子邮件,不过很少有回的,在论坛的短消息也一样。
  网名:warning3
  联系方法:

warning3@hotmail.com

  linux,unix方面的高手。国内数一数二。熟悉linux下的缓冲区溢出以及利用。《Heap/BSS 溢出机理分析》等文章的作者。是绿盟公司的头。
  网名:bkbll
  联系方法:

bkbll@cnhonker.com

  原中国红客联盟的核心成员,在中美黑客大战期间写过几篇入侵方面的文章。windows与linux的熟悉,对漏洞和EXPLOIT也有研究。例如那个POSIX子系统权限提升漏洞的分析,还有IFRAME等等。都可以看出这个人的技术不错。常走动于安全焦点论坛,参与技术问题的讨论。
  网名:SoBeIt
  联系方法:

kinvis@hotmail.com

QQ:27324838
  在安全焦点发布过很多文章。而且篇篇都很精彩。熟悉windows与编程,汇编,还有溢出。看他的文章就知道技术不错。例如,《Windows内核调试器原理浅析》,《挂钩Windows API》,《在NT系列操作系统里让自己“消失”》等等。
  网名:sunwear
  联系方法:

shellcoder@163.com

QQ:625185
  个人主页:

http://blog.csdn.net/sunwear


  是邪恶八进制的核心成员。踏入技术领域时间不短,99年就出现在绿盟论坛。在安全焦点上有他的作品。熟悉windows系统内核与windows编程。早年对渗透入侵及漏洞利用也颇有研究。《再谈进程PID相同的深入探究》《浅析本机API》就出自他的手下。活跃于安全焦点论坛,参与技术讨论的同时,还不忘灌水。
  网名:zzzevazzz
  联系方法:

zzzevazzz@126.com

  个人主页:

http://zzzevazzz.blogchina.com/


  是幻旅的核心成员。《DO ALL IN CMD SHELL》《深入挖掘Windows脚本技术》等等的作者。熟悉windows系统内核及编程。也经常在安全焦点的论坛中出现,参与技术讨论。人也不错。活跃与幻旅的论坛。
网名:zwell
  联系方法:

suei8423@163.com


  个人主页:

http://www.donews.net/zwell


  是NB联盟的核心成员。熟悉C语言以及系统编程。在安全焦点上有其作品。例如《安全稳定的实现进线程监控》等等。此人以前很少听说过。不过技术还算不错。文章写的很好。也活跃越安全焦点的论坛,经常参与技术讨论。不过不爱灌水,只讨论技术方面的问题。曾经还写过动网上传的利用程序,及利用的方法分析。
·暴强网络黑名单!中国顶级黑客联络图(2)
  网名:xhacker
  联系方法:QQ:66680800
  真名王亮,目前生活在广州,已经24岁。无组织的一个对渗透入侵很有研究的人,对SQL注入研究很深入。曾经通过渗透,入侵过绿盟的网站。可以说此人是渗透入侵方面的高手。他还有个名字-“小叮当”。《详述虚拟网站的权限突破及防范》,《如何利用黑客技术跟踪并分析一名目标人物》等文章的作者。曾经活跃于多个论坛,乐于帮助别人解决问题。人缘很好,朋友很多。
  网名:watercloud
  联系方法:watercloud@xfocus.org
  安全焦点核心成员。对linux下的缓冲区溢出及利用非常有研究,熟悉EXPLOIT的编写。《RSA算法基础->实践 》,《溢出利用程序和编程语言大杂烩 》等文章的作者。活跃在安全焦点论坛中,喜欢交流技术方面的问题。
  网名:eyas
  联系方法:

eyas@xfocus.org

QQ:320236
  安全焦点核心成员,对windows编程及漏洞溢出比较熟悉。文章和作品也很多,听说他的成长非常艰苦。很钦佩他。作品也不少。例如《NT平台拨号连接密码恢复原理》,《WS_FTP FTPD STAT命令远程溢出分析》。在安全焦点论坛也很活跃。人还不错。
  网名:funnywei
  联系方法:

funnywei@xfocus.org

  安全焦点核心成员。被人亲切的称为F博士。对windows与编程比较熟悉 ,作品不多,但是可以体现其技术不错。例如《Windows Xp Sp2溢出保护》。很少在安全焦点的论坛出现。
  网名:pjf
  联系方法:jfpan20000@sina.com
  个人站点:

http://www.blogcn.com/user17/pjf/index.html


  大名鼎鼎的ICESWORD的作者。对windows系统内核非常有研究。文章的技术含量也很高。不得不佩服。虽然很少在各大论坛出现。但是他的帖子和文章非常好。《线程调度的监视》《防止全局钩子的侵入》等等都出自他的手笔。
  网名:孤独剑客
  联系方法:

Janker@Hackbase.Com

QQ:5385757
  个人站点:

Http://Www.Janker.Org

  此人名声已经很大了,不过不少人对他有意见,很骄傲狂妄。不过技术还是不错的。在编程方面技术很硬,而且也是中国第二代黑客的代表人物。与此人用QQ沟通非长累,有时候觉得他根本没把你放在眼里。
  网名:sunx
  联系方法:

sunx@163.com

QQ:239670
  个人站点:

www.sunx.org

  国内非常有名的程序员,对漏洞溢出与利用和有研究,写过EXPLOIT。例如IDA漏洞和printer。在9X年代用汇编写过病毒。主页上有病毒的代码。可以看出他的ASM水平哦。
  网名:analysist
  联系方法:

analysist@nsfocus.com

  绿盟科技的数据库及脚本高手。在很久以前就对跨站脚本及SQL注入很有研究了。《跨站脚本执行漏洞详解》,《BBS2000和BBS3000所存在的安全隐患》等等都是他的作品。也是革命的先辈吧。不过听说已经不在绿盟了。
  网名:Frankie
  网站:

http://cnns.net


  真名谢朝霞,男!现在安络的头,也就是深圳晨光的后代。是WINDOWSNT的方面的高手,而同时对LINUX的了解也非常的多。他是中国的第一代黑客,像coolfire一样。不过现在Frankie已经发展成为公司的领头人物了。
   网名:rootshell
  联系方法:

sysadm@21cn.com

QQ:1734398
  个人站点:http;//ns-one.com
  黑客界的老人物了。除了rootshell他还有一个名字-FZK。对windows linux底层很熟悉,对漏洞及溢出利用相当有研究。曾经的作品也很多.这段时间在焦点有一篇叫〈最近发现的一个Distributed File System服务远程溢出问题〉的文章,就出自此人之手。而他在入侵方面也很有研究。
  网名:PP
  联系方法:QQ:720888
  中国第一代黑客之一。彭泉没听过?此人对windows方面的维护已经编程都很熟悉。在几年前很熟悉WINDOWS方面的入侵及漏洞利用。名言是:如果想飞得高,就该把地平线忘掉。
  网名:tianxing
  联系方法:OICQ;911189
  网站:http;//www.tianxing.org/
  中国第一代黑客之一。在1999年曾经与发动对国外网站的攻击。网络刺客,网络卫兵是其代表作品。而他对溢出和漏洞利用也颇有研究,例如RPC漏洞利用程序。以及他写的后门都很好。
  网名:coolq
  联系方法:qufuping@ercist.iscas.ac.cn
  中国科学院的研究生。在绿盟有多篇文章为他所做。对linux内核非常熟悉,精通LINUX操作与编程,熟悉LINUX下入侵。〈Linux下用gdb检测内核rootkit 〉就出自他的笔下。接触技术研究在2001-2002左右。活跃于LINUXFORUM与安全焦点论坛。
  网名:grip2
  联系方法:

gript2@hotmail.com

  LINUXFORUM的斑竹。熟悉LINUX操作有编程。对LINUX下的病毒也很有研究。〈一个Linux病毒原型分析〉等文章就为他所作。活跃于LINUXFORUM论坛。
  网名:san
  联系方法:

san@xfocus.org

  安全焦点核心成员,人们都叫他小许。也是他带领着焦点的团队出的书。精通LINUX使用配置与编程。熟悉溢出与漏洞利用以及exploit的编写,熟悉脚本,及脚本漏洞的利用,linux下的脚本入侵。作品很多,例如〈AIX PowerPC体系结构及其溢出技术学习笔记〉等。经常走动于安全焦点论坛,不过是潜水员。为人比较内向,不爱说话。
  网名:hume
  联系方法:

hument@21cn.com

  个人站点

http://humeasm.yeah.net


  早期的著名程序员。熟悉WINDOWS内核以及程序开发。汇编的技术非常高。在shellcode编写方面有独特见解。2003年也在绿盟出现过几次。个人作品比较多.例如〈SEH in ASM 研究〉等等。
  网名:小四
  联系方法:

scz@nsfocus.com

  个人站点:

http://www.opencjk.org/~scz/


  小四哥,跟袁哥等人都是绿盟的高手哦。小四哥对windows内核,汇编,漏洞溢出利用,程序开发都很有研究,而且还懂得入侵方面。原创文章也非常的多。比如SMB系列的文章,《SLKM入侵初探》等等。在绿盟论坛还是经常回答提问的帖子,人很好。
发表于 2006-8-29 17:34:45 | 显示全部楼层
C语言教程第二章: 数据类型、运算符、表达式

作者:佚名   文章来源:未知   点击数:26973   更新时间:2004-9-12

C语言的数据类型

  在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:
·数据类型
·存储类型
·作用域
  在本课中,我们只介绍数据类型说明。其它说明在以后各章中陆续介绍。所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。

1.基本数据类型

  基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。

2.构造数据类型构造数据类型

  是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种:
·数组类型
·结构类型
·联合类型

3.指针类型

  指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。4.空类型在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出的max函数定义中,函数头为: int max(int a,int b);其中“int ”类型说明符即表示该函数的返回值为整型量。又如在例题中,使用了库函数 sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值一致。所以在说明部分,把s说明为双精度浮点型。但是,也有一类函数,调用后并不需要向调用者返回函数值, 这种函数可以定义为“空类型”。其类型说明符为void。在第五章函数中还要详细介绍。在本章中,我们先介绍基本数据类型中的整型、浮点型和字符型。其余类型在以后各章中陆续介绍。

  对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。

整型量

整型量包括整型常量、整型变量。整型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制三种。

整型常量

1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下各数是合法的八进制数:
015(十进制为13) 0101(十进制为65) 0177777(十进制为65535)
以下各数不是合法的八进制数:
256(无前缀0) 03A2(包含了非八进制数码) -0127(出现了负号)

2.十六进制整常数
十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42)  0XA0 (十进制为160)  0XFFFF (十进制为65535)
以下各数不是合法的十六进制整常数:
5A (无前缀0X)  0X3H (含有非十六进制数码)

3.十进制整常数
十进制整常数没有前缀。其数码为0~9。
以下各数是合法的十进制整常数:
237 -568 65535 1627
以下各数不是合法的十进制整常数:
023 (不能有前导0) 23D (含有非十进制数码)


在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。4.整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为0~65535,有符号数为-32768~+32767。八进制无符号数的表示范围为0~0177777。十六进制无符号数的表示范围为0X0~0XFFFF或0x0~0xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:
十进制长整常数 158L (十进制为158) 358000L (十进制为-358000)
八进制长整常数 012L (十进制为10) 077L (十进制为63) 0200000L (十进制为65536)
十六进制长?常??0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536)
  
  长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算和输出格式上要予以注意,避免出错。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如: 358u,0x38Au,235Lu 均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。

整型变量

整型变量可分为以下几类:
1.基本型
类型说明符为int,在内存中占2个字节,其取值为基本整常数。
2.短整量
类型说明符为short int或short'C110F1。所占字节和取值范围均与基本型相同。
3.长整型
类型说明符为long int或long ,在内存中占4个字节,其取值为长整常数。
4.无符号型
类型说明符为unsigned。
无符号型又可与上述三种类型匹配而构成:
(1)无符号基本型 类型说明符为unsigned int或unsigned。
(2)无符号短整型 类型说明符为unsigned short
(3)无符号长整型 类型说明符为unsigned long
各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。
类型说明符    数的范围     分配字节数
int       -32768~32767     ■■
short int    -32768~32767     ■■
signed int    -32768~32767     ■■
unsigned int   0~65535        ■■
long int  -2147483648~2147483647  ■■■■
unsigned long  0~4294967295     ■■■■
整型变量的说明
变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如:
int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无符号整型变量)

在书写变量说明时,应注意以下几点:
1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
2.最后一个变量名之后必须以“;”号结尾。
3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。
[Practice] //1int a,b;
short int c;
short d=100;
a=d-20;
b=a+d;
c=a+b+d;
d=d-a+c-b;'Vtable
a,2,0
b,2,0
c,2,0
d,2,100
of Vtable
'Vupdate
1,0;2,0
3,0
4,100
1,80
2,180
3,360
4,200
of Vupdate
of Practice
[Practice] //2int a=5;
int b=9;
long int c;
long d;
c=a+b-7;
d=a*b*c;
c=d*d*d;
a=c-d;'Vtable
a,2,5
b,2,9
c,4,0
d,4,0
of Vtable
'Vupdate
1,5
2,9
3,0
4,0
3,7
4,315
3,31255875
1,-5112
of Vupdate
of Practice
[Practice] //3int a=6,b=19;
unsigned int c;
int d;
c=a-b+7;
d=b*c;
a=b+c+d;
b=-a;'Vtable
a,2,6
b,2,19
c,2,0
d,2,0
of Vtable
'Vupdate
1,6;2,19
3,0
4,0
3,65530
4,-114
1,-101
2,101
of Vupdate
of Practice
void main(){
long x,y;
int a,b,c,d;
x=5;
y=6;
a=7;
b=8;
c=x+a;
d=y+b;
printf("c=x+a=%d,d=y+b=%d\n",c,d);
}
将main说明为返回void,即不返回任何类型的值
x,y被定义为long型
a,b,c,d被定义为int型
5->x
6->y
7->a
8->b
x+a->c
y+b->d
显示程序运行结果 of long x,y;
int a,b,c,d;
c=x+a;
d=y+b;
  从程序中可以看到:x, y是长整型变量,a, b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍。

实型量

实型常量

实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式: 十进制数形式指数形式
1.十进制数形式
由数码0~ 9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。
2.指数形式
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为十进制数,n为十进制整数)其值为 a*10,n 如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于3.7*10,)-2*) 0.5E7 (等于0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的凳?345 (无小数点) E7 (阶码标志E之前无数字)  -5 (无阶码标志) 53.-E3 (负号位置不对) 2.7E (无阶码)
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。例2.2说明了这种情况:
void main()
{
printf("%f\n%f\n",356.,356f);
}
void 指明main不返回任何值 利用printf显示结果 结束

实型变量

实型变量分为两类:单精度型和双精度型,
其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
实型变量说明的格式和书写规则与整型相同。
例如: float x,y; (x,y为单精度实型量)
    double a,b,c; (a,b,c为双精度实型量)
实型常数不分单、双精度,都按双精度double型处理。
void main()
{
  float a;
  double b;
  a=33333.33333;
  b=33333.33333333333333;
  printf("%f\n%f\n",a,b);
}
此程序说明float、double的不同
a ■■■■
b ■■■■■■■■
a<---33333.33333
b<---33333.33333333333;;
显示程序结果
此程序说明float、double的不同
float a;
double b;
a=33333.33333;
b=33333.33333333333333; 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。
[Practice] //floatint a=32;
float b;
double d;
b=12345678;
d=b*100;
d=d+a;
d=d+58.123456;&#39;Vtable
a,2,32
b,4,0.0
d,8,0.0
of Vtable
&#39;Vupdate
1,32
2,0
3,0
2,12345678.00000
3,1234567800
3,1234567832
3,1234567890.123456
of Vupdate
of Practice
[Practice] //1int a=543;
float b;
b=123.123962+a;
b=b-100;
a=b;&#39;Vtable
a,2,543
b,4,0.0
of Vtable
&#39;Vupdate
1,543
2,0.0
2,123.123962
2,23.123962
1,23
of Vupdate
of Practice
字符型量

字符型量包括字符常量和字符变量。

字符常量
字符常量是用单引号括起来的一个字符。例如&#39;a&#39;,&#39;b&#39;,&#39;=&#39;,&#39;+&#39;,&#39;?&#39;都是合法字符常量。在C语言中,字符常量有以下特点:
1.字符常量只能用单引号括起来,不能用双引号或其它括号。
2.字符常量只能是单个字符,不能是字符串。
3.字符可以是字符集中任意字符。但数字被定义为字符型之后就
不能参与数值运算。如&#39;5&#39;和5 是不同的。&#39;5&#39;是字符常量,不能参与运算。

转义字符
转义字符是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符  转义字符的意义
\n      回车换行
\t      横向跳到下一制表位置
\v      竖向跳格
\b      退格
\r      回车
\f      走纸换页
\\      反斜线符"\"
\&#39;      单引号符
\a      鸣铃
\ddd     1~3位八进制数所代表的字符
\xhh     1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A" ,\102表示字母"B",\134表示反斜线,\XOA表示换行等。转义字符的使用
void main()
{
int a,b,c;
a=5; b=6; c=7;
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
}
此程序练习转义字符的使用
a、b、c为整数 5->a,6->b,7->c
调用printf显示程序运行结果
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
程序在第一列输出a值5之后就是“\n”,故回车换行;接着又是“\t”,于是跳到下一制表位置(设制表位置间隔为8),再输出b值6;空二格再输出c 值7后又是"\n",因此再回车换行;再空二格之后又输出a值5;再空三格又输出b的值6;再次后"\t"跳到下一制表位置(与上一行的6 对齐),但下一转义字符“\b”又使退回一格,故紧挨着6再输出c值7。

字符变量
字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。
例如:
char a,b; 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的
十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予&#39;x&#39;和&#39;y&#39;值: a=&#39;x&#39;;b=&#39;y&#39;;实际上是在a,b两个单元内存放120和121的二进制代码: a 0 1 1 1 1 0 0 0
     b 0 1 1 1 1 0 0 1
所以也可以把它们看成是整型量。 C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出,也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时, 只有低八位字节参与处理。
main()
{
  char a,b;
  a=120;
  b=121;
  printf("%c,%c\n%d,%d\n",a,b,a,b);
}
a ■ b ■
a <-- 120
b <--- 121
显示程序结果

本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。
void main()
{
  char a,b;
  a=&#39;x&#39;;
  b=&#39;y&#39;;
  a=a-32;
  b=b-32;
  printf("%c,%c\n%d,%d\n",a,b,a,b);
}
a,b被说明为字符变量并赋予字符值
把小写字母换成大写字母
以整型和字符型输出
本例中,a,b被说明为字符变量并赋予字符值,C语言允许字符变量参与数值运算,即用字符的ASCII 码参与运算。由于大小写字母的ASCII 码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。
[Practice] //charint a=49;
char b;
char d;
b=a+10;
d=a+b;&#39;Vtable
a,2,49
b,1,随机
d,1,随机
of Vtable
&#39;Vupdate
1,49
2,随机
3,随机
2,&#39;;&#39;
3,&#39;l&#39;
of Vupdate
of Practice
[Practice] //char c1,c2;
c1=&#39;a&#39;;c2=&#39;b&#39;;
c1=c1-32;c2=c2-32;&#39;Vtable
c1,1,随机
c2,1,随机
of Vtable
&#39;Vupdate
1,随机;2,随机
1,&#39;a&#39;;2,&#39;b&#39;
1,&#39;A&#39;;2,&#39;B&#39;
of Vupdate
of Practice

字符串常量
字符串常量是由一对双引号括起的字符序列。例如: "CHINA" ,"C program:" , "$12.5" 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间主要有以下区别:
1.字符常量由单引号括起来,字符串常量由双引号括起来。
2.字符常量只能是单个字符,字符串常量则可以含一个或多个字符。
3.可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量。
这是与BASIC 语言不同的。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。
4.字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0"(ASCII码为0)。这是字符串结束的标志。例如,字符串 "C program"在内存中所占的字节为:C program\0。字符常量&#39;a&#39;和字符串常量"a"虽然都只有一个字符,但在内存中的情况是不同的。
&#39;a&#39;在内存中占一个字节,可表示为:a
"a"在内存中占二个字节,可表示为:a\0符号常量

符号常量
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:
#define 标识符 常量
其中#define也是一条预处理命令(预处理命令都?quot;#"开头),称为宏定义命令(在第九章预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。
#define PI 3.14159
void main()
{
  float s,r;
  r=5;
  s=PI*r*r;
  printf("s=%f\n",s);
}
由宏定义命令定义PI 为3.14159 s,r定义为实数 5->r PI*r*r->s
显示程序结果 float s,r; r=5; s=PI*r*r; 本程序在主函数之前由宏定义命令定义PI 为3.14159,在程序中即以该值代替PI 。s=PI*r*r等效于s=3.14159*r*r。应该注意的是,符号常量不是变量,它所代表的值在整个作用域内不能再改变。也就是说,在程序中,不能再用赋值语句对它重新赋值。

变量的初值和类型转换

变量赋初值
在程序中常常需要对变量赋初值,以便使用变量。语言程序中可有多种方法,在定义时赋以初值的方法,这种方法称为初始化。在变量说明中赋初值的一般形式为:
类型说明符 变量1= 值1,变量2= 值2,……; 例如:
int a=b=c=5;
float x=3.2,y=3f,z=0.75;
char ch1=&#39;K&#39;,ch2=&#39;P&#39;;
应注意,在说明中不允许连续赋值,如a=b=c=5是不合法的。
void main()
{
  int a=3,b,c=5;
  b=a+c;
  printf("a=%d,b=%d,c=%d\n",a,b,c);
}
a<---3,b<--0,c<---5
b<--a+c
显示程序运行结果

变量类型的转换
变量的数据类型是可以转换的。转换的方法有两种, 一种是自动转换,一种是强制转换。

自动转换
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:
1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4.char型和short型参与运算时,必须先转换成int型。
5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。图2??1表示了类型自动转换的规则。
void main()
{
  float PI=3.14159;
  int s,r=5;
  s=r*r*PI;
  printf("s=%d\n",s);
}
PI<--3.14159
s<--0,r<--5
s<--r*r*PI
显示程序运行结果
float PI=3.14159;
int s,r=5;
s=r*r*PI;
本例程序中,PI为实型;s,r为整型。在执行s=r*r*PI语句时,r和PI都转换成double型计算,结果也为double型。但由于s为整型,故赋值结果仍为整型,舍去了小数部分。
强制类型转换
强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为实型(int)(x+y) 把x+y的结果转换为整型在使用强制转换时应注意以下问题:
1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。
2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
main()
{
  float f=5.75;
  printf("(int)f=%d,f=%f\n",(int)f,f);
}
f<--5.75
将float f强制转换成int f float f=5.75;printf("(int)f=%d,f=%f\n",(int)f,f); 本例表明,f虽强制转为int型,但只在运算中起作用, 是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。

基本运算符和表达式

运算符的种类、优先级和结合性
C语言中运算符和表达式数量之多, 在高级语言中是少见的。正是丰富的运算符和表达式使C语言功能十分完善。 这也是C语言的主要特点之一。
C语言的运算符不仅具有不同的优先级, 而且还有一个特点,就是它的结合性。在表达式中, 各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约, 以便确定是自左向右进行运算还是自右向左进行运算。 这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。

运算符的种类C语言的运算符可分为以下几类:
1.算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→,.)等几种。

优先级和结合性
C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。 而在一个运算量两侧的运算符优先级相同时, 则按运算符的结合性所规定的结合方向处理。 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合, 执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。 C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

算术运算符和算术表达式基本的算术运算符
1.加法运算符“+”加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有右结合性。
2.减法运算符“-”减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。
3.乘法运算符“*”双目运算,具有左结合性。
4.除法运算符“/”双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。
void main(){
printf("\n\n%d,%d\n",20/7,-20/7);
printf("%f,%f\n",20.0/7,-20.0/7);
}
双目运算具有左结合性。参与运算量均为整型时, 结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 printf("\n\n%d,%d\n",20/7,-20/7);
printf("%f,%f\n",20.0/7,-20.0/7);
本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型。
5.求余运算符(模运算符)“%”双目运算,具有左结合性。要求参与运算的量均为整型。 求余运算的结果等于两数相除后的余数。
void main(){
printf("%d\n",100%3);
}
双目运算,具有左结合性。求余运算符% 要求参与运算的量均为整型。本例输出100除以3所得的余数1。

自增1,自减1运算符
自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: ++i i自增1后再参与其它运算。--i i自减1后再参与其它运算。
i++  i参与运算后,i的值再自增1。
i--  i参与运算后,i的值再自减1。
在理解和使用上容易出错的是i++和i--。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。
void main(){
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
} i<--8
i<--i+1
i<--i-1
i<--i+1
i<--i-1
i<--i+1
i<--i-1 int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
i的初值为8
第2行i加1后输出故为9;
第3行减1后输出故为8;
第4行输出i为8之后再加1(为9);
第5行输出i为9之后再减1(为8) ;
第6行输出-8之后再加1(为9);
第7行输出-9之后再减1(为8)
void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
i<--5,j<--5,p<--0,q<--0
i+i+i--->p,i+1-->i,i+1-->i,i+1-->i
j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。算术表达式表达式是由常量、变量、函数和运算符组合起来的式子。 一个表达式有一个值及其类型, 它们等于计算表达式所得结果的值和类型。表达式求值按运算符的优先级和结合性规定的顺序进行。 单个的常量、变量、函数可以看作是表达式的特例。算术表达式
是由算术运算符和括号连接起来的式子, 以下是算术表达式的例子:
a+b  (a*2)/c (x+r)*8-(a+b)/7  ++i sin(x)+sin(y)  (++i)-(j++)+(k--)

赋值运算符和赋值表达式
简单赋值运算符和表达式,简单赋值运算符记为“=”。由“= ”连接的式子称为赋值表达式。其一般形式为: 变量=表达式 例如:
x=a+b
w=sin(a)+sin(b)
y=i+++--j 赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。因此
a=b=c=5
可理解为
a=(b=(c=5))
在其它高级语言中,赋值构成了一个语句,称为赋值语句。 而在C中,把“=”定义为运算符,从而组成赋值表达式。 凡是表达式可以出现的地方均可出现赋值表达式。例如,式子x=(a=5)+(b=8)是合法的。它的意义是把5赋予a,8赋予b,再把a,b相加,和赋予x ,故x应等于13。
在C语言中也可以组成赋值语句,按照C语言规定, 任何表达式在其未尾加上分号就构成为语句。因此如x=8;a=b=c=5;都是赋值语句,在前面各例中我们已大量使用过了。
如果赋值运算符两边的数据类型不相同, 系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体规定如下:
1.实型赋予整型,舍去小数部分。前面的例2.9已经说明了这种情况。
2.整型赋予实型,数值不变,但将以浮点形式存放, 即增加小数部分(小数部分的值为0)。
3.字符型赋予整型,由于字符型为一个字节, 而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。
4.整型赋予字符型,只把低八位赋予字符量。
void main(){
int a,b=322;
float x,y=8.88;
char c1=&#39;k&#39;,c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);
}
int a,b=322;
float x,y=8.88;
char c1=&#39;k&#39;,c2;
printf("%d,%f,%d,%c",a=y,x=b,a=c1,c2=b);
本例表明了上述赋值运算中类型转换的规则。a为整型,赋予实型量y值8??88后只取整数8。x为实型,赋予整型量b值322, 后增加了小数部分。字符型量c1赋予a变为整型,整型量b赋予c2 后取其低八位成为字符型(b的低八位为01000010,即十进制66,按ASCII码对应于字符B)。

复合赋值符及表达式
在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。 构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等效于 变量=变量 运算符 表达式 例如: a+=5 等价于a=a+5  x*=y+7 等价于x=x*(y+7)  r%=p 等价于r=r%p
复合赋值符这种写法,对初学者可能不习惯, 但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。逗号运算符和逗号表达式在

逗号运算符
C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。
其一般形式为: 表达式1,表达式2 其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
void main(){
int a=2,b=4,c=6,x,y;
x=a+b,y=b+c;
printf("y=%d,x=%d",y,x);
}
a<--2,b<--4,c<--6,x<--0,y<--0
x<--a+b,y<---b+c
本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式还要说明两点:
1.逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。例如: 表达式1,(表达式2,表达式3) 形成了嵌套情形。因此可以把逗号表达式扩展为以下形式: 表达式1,表达式2,…表达式n 整个逗号表达式的值等于表达式n的值。
2.程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
3.并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。
[Practice] //arithmeticint a,b,c;
float d;
a=11;
b=235;
c=a+b-a*b;
d=(float)c/(float)a;
a=c/a;&#39;Vtable
a,2,0
b,2,0
c,2,0
d,4,0.0
of Vtable
&#39;Vupdate
1,0;2,0;3,0
4,0.0
1,11
2,235
3,-2339
4,-212.636368
1,-212
of Vupdate
of Practice
[Practice] //1int a,b,c1,c2;
a=25;
b=3243;
c1=b/a;
c2=b%a;&#39;Vtable
a,2,0
b,2,0
c1,2,0
c2,2,0
of Vtable
&#39;Vupdate
1,0;2,0;3,0;4,0
1,25
2,3243
3,129
4,18
of Vupdate
of Practice
[Practice] //1int a,b,c;
a=25;
b=40;
c=a+b,c+35;&#39;Vtable
a,2,0
b,2,0
c,2,0
of Vtable
&#39;Vupdate
1,0;2,0;3,0
1,25
2,40
3,65
of Vupdate
of Practice

小结

1.C的数据类型
基本类型,构造类型,指针类型,空类型
2.基本类型的分类及特点
类型说明符      字节       数值范围
字符型char        1        C字符集
基本整型int       2        -32768~32767
短整型short int     2         -32768~32767
长整型 long int     4      -214783648~214783647
无符号型 unsigned    2        0~65535
无符号长整型 unsigned long 4      0~4294967295
单精度实型 float    4       3/4E-38~3/4E+38
双精度实型 double   8       1/7E-308~1/7E+308
3.常量后缀
L或l 长整型
U或u 无符号数
F或f 浮点数
4.常量类型
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
5.数据类型转换
·自动转换
在不同类型数据的混合运算中,由系统自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。
·强制转换
由强制转换运算符完成转换。
6.运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、 赋值
7.表达式
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。
发表于 2006-8-29 17:34:46 | 显示全部楼层
海明威《老人与海》

  他是个独自在湾流①中一条小船上钓鱼的老人,至今已去了八十四天,一条鱼也没逮住。头四十天里,有个男孩子跟他在一起。可是,过了四十天还没捉到一条鱼,孩子的父母对他说,老人如今准是十足地"倒了血霉",这就是说,倒霉到了极点,于是孩子听从了他们的吩咐,上了另外一条船,头一个礼拜就捕到了三条好鱼。孩子看见老人每天回来时船总是空的,感到很难受,他总是走下岸去,帮老人拿卷起的钓索,或者鱼钩和鱼叉,还有绕在桅杆上的帆。帆上用面粉袋片打了些补丁,收拢后看来象是一面标志着永远失败的旗子。
①指墨西哥湾暖流,向东穿过美国佛罗里达州南端和古巴之间的佛罗里达海峡,沿着北美东海岸向东北流动。这股暖流温度比两旁的海水高至度,最宽处达英里,呈深蓝色,非常壮观,为鱼类群集的地方。本书主人公为古巴首都哈瓦那附近小海港的渔夫,经常驶进湾流捕鱼。
  老人消瘦而憔悴,脖颈上有些很深的皱纹。腮帮上有些褐斑,那是太阳在热带海面上反射的光线所引起的良性皮肤癌变。褐斑从他脸的两侧一直蔓延下去,他的双手常用绳索拉大鱼,留下了刻得很深的伤疤。但是这些伤疤中没有一块是新的。它们象无鱼可打的沙漠中被侵蚀的地方一般古老。他身上的一切都显得古老,除了那双眼睛,它们象海水一般蓝,是愉快而不肯认输的。
  "圣地亚哥,"他们俩从小船停泊的地方爬上岸时,孩子对他说。"我又能陪你出海了。我家挣到了一点儿钱。"
  老人教会了这孩子捕鱼,孩子爱他。
  "不,"老人说。"你遇上了一条交好运的船。跟他们待下去吧。"
  "不过你该记得,你有一回八十七天钓不到一条鱼,跟着有三个礼拜,我们每天都逮住了大鱼。"
  "我记得,"老人说。"我知道你不是因为没把握才离开我的。"
  "是爸爸叫我走的。我是孩子,不能不听从他。"
  "我明白,"老人说。"这是理该如此的。"
  "他没多大的信心。"
  "是啊,"老人说。"可是我们有。可不是吗?"
  "对,"孩子说。"我请你到露台饭店去喝杯啤酒,然后一起把打鱼的家什带回去。"
  "那敢情好,"老人说。"都是打鱼人嘛。"
  他们坐在饭店的露台上,不少渔夫拿老人开玩笑,老人并不生气。另外一些上了些年纪的渔夫望着他,感到难受。不过他们并不流露出来,只是斯文地谈起海流,谈起他们把钓索送到海面下有多深,天气一贯多么好,谈起他们的见闻。当天打鱼得手的渔夫都已回来,把大马林鱼剖开,整片儿排在两块木板上,每块木板的一端由两个人抬着,摇摇晃晃地送到收鱼站,在那里等冷藏车来把它们运往哈瓦那的市场。逮到鲨鱼的人们已把它们送到海湾另一边的鲨鱼加工厂去,吊在复合滑车上,除去肝脏,割掉鱼鳍,剥去外皮,把鱼肉切成一条条,以备腌制。
  刮东风的时候,鲨鱼加工厂隔着海湾送来一股气味;但今天只有淡淡的一丝,因为风转向了北方,后来逐渐平息了,
  饭店露台上可人心意、阳光明媚。
  "圣地亚哥,"孩子说。
  "哦,"老人说。他正握着酒杯,思量好多年前的事儿。
  "要我去弄点沙丁鱼来给你明天用吗?"
  "不。打棒球去吧。我划船还行,罗赫略会给我撒网的。"
  "我很想去。即使不能陪你钓鱼,我也很想给你多少做点事。"
  "你请我喝了杯啤酒,"老人说。"你已经是个大人啦。"
  "你头一回带我上船,我有多大?"
  "五岁,那天我把一条鲜龙活跳的鱼拖上船去,它差一点把船撞得粉碎,你也差一点给送了命。还记得吗?"
  "我记得鱼尾巴砰砰地拍打着,船上的座板给打断了,还有棍子打鱼的声音。我记得你把我朝船头猛推,那儿搁着湿漉漉的钓索卷儿,我感到整条船在颤抖,听到你啪啪地用棍子打鱼的声音,象在砍一棵树,还记得我浑身上下都是甜丝丝的血腥味儿。"
  "你当真记得那回事儿,还是我不久前刚跟你说过?"
  "打从我们头一回一起出海时起,什么事儿我都记得清清楚楚。"
  老人用他那双常遭日晒而目光坚定的眼睛爱怜地望着他。
  "如果你是我自己的小子,我准会带你出去闯一下,"他说。"可你是你爸爸和你妈妈的小子,你搭的又是一条交上了好运的船。"
  "我去弄沙丁鱼来好吗?我还知道上哪儿去弄四条鱼饵来。"
  "我今天还有自个儿剩下的。我把它们放在匣子里腌了。"
  "让我给你弄四条新鲜的来吧。"
  "一条,"老人说。他的希望和信心从没消失过。现在可又象微风初起时那么清新了。
  "两条,"孩子说。
  "就两条吧,"老人同意了。"你不是去偷的吧?"
  "我愿意去偷,"孩子说。"不过这些是买来的。"
  "谢谢你了,"老人说。他心地单纯,不去捉摸自己什么时候达到这样谦卑的地步。可是他知道这时正达到了这地步,知道这并不丢脸,所以也无损于真正的自尊心。
  "看这海流,明儿会是个好日子,"他说。
  "你打算上哪儿?"孩子问。
  "驶到远方,等转了风才回来。我想天亮前就出发。"
  "我要想法叫船主人也驶到远方,"孩子说。"这样,如果你确实钓到了大鱼,我们可以赶去帮你的忙。"
  "他可不会愿意驶到很远的地方。"
  "是啊,"孩子说。"不过我会看见一些他看不见的东西,比如说有只鸟儿在空中盘旋,我就会叫他赶去追鲯鳅的。"
  "他眼睛这么不行吗?"
  "简直是个瞎子。"
  "这可怪了,"老人说。"他从没捕过海龟。这玩艺才伤眼睛哪。"
  "你可在莫斯基托海岸①外捕了好多年海龟,你的眼力还是挺好的嘛。"①位于中美洲尼加拉瓜的东部,是滨墨西哥湾的低洼的海岸地带,长满了灌木林。为印第安人中的莫斯基托族居住的地方,故名。
  "我是个不同寻常的老头儿。"
  "不过你现在还有力气对付一条真正大的鱼吗?"
  "我想还有。再说有不少窍门可用呢。"
  "我们把家什拿回家去吧,"孩子说。"这样我可以拿了鱼网去逮沙丁鱼。"
  他们从船上拿起打鱼的家什。老人把桅杆扛上肩头,孩子拿着内放编得很紧密的褐色钓索卷儿的木箱、鱼钩和带杆子的鱼叉。盛鱼饵的匣子给藏在小船的船梢下面,那儿还有那根在大鱼被拖到船边时用来收服它们的棍子,谁也不会来偷老人的东西,不过还是把桅杆和那些粗钓索带回家去的好,因为露水对这些东西不利,再说,尽管老人深信当地不会有人来偷他的东西,但他认为,把一把鱼钩和一支鱼叉留在船上实在是不必要的引诱。
  他们顺着大路一起走到老人的窝棚,从敞开的门走进去。老人把绕着帆的桅杆靠在墙上,孩子把木箱和其他家什搁在它的旁边。桅杆跟这窝棚内的单间屋子差不多一般长。窝棚用大椰子树的叫做"海鸟粪"的坚韧的苞壳做成,里面有一张床、一张桌子、一把椅子和泥地上一处用木炭烧饭的地方。
  在用纤维结实的"海鸟粪"展平了叠盖而成的褐色墙壁上,有一幅彩色的耶稣圣心图①和另一幅科布莱圣母图②。这是他妻子的遗物。墙上一度挂着幅他妻子的着色照,但他把它取下了,因为看了觉得自己太孤单了,它如今在屋角搁板上,在他的一件干净衬衫下面。①法国修女玛格丽特·玛丽·阿拉科克倡议崇拜耶稣基督的圣心,在信奉天主教的国家中传播甚广。②科布莱为古巴东南部一小镇,镇南小山上有科布莱圣母祠,每年月日为朝圣日。
  "有什么吃的东西?"
  "有锅鱼煮黄米饭。要吃点吗?"
  "不。我回家去吃。要我给你生火吗?"
  "不用。过一会儿我自己来生。也许就吃冷饭算了。"
  "我把鱼网拿去好吗?"
  "当然好。"
  实在并没有鱼网,孩子还记得他们是什么时候把它卖掉的。然而他们每天要扯一套这种谎话。也没有什么鱼煮黄米饭,这一点孩子也知道。
  "八十五是个吉利的数目,"老人说。"你可想看到我逮住一条去掉了下脚有一千多磅重的鱼?"
  "我拿鱼网捞沙丁鱼去。你坐在门口晒晒太阳可好?"
  "好吧。我有张昨天的报纸,我来看看棒球消息。"
  孩子不知道昨天的报纸是不是也是乌有的。但是老人把它从床下取出来了。
  "佩里科在杂货铺里给我的,"他解释说。
  "我弄到了沙丁鱼就回来。我要把你的鱼跟我的一起用冰镇着,明儿早上就可以分着用了。等我回来了,你告诉我棒球消息。"
  "扬基队①不会输。"
  "可是我怕克利夫兰印第安人队会赢。"
  "相信扬基队吧,好孩子。别忘了那了不起的迪马吉奥。"②①这支纽约市的棒球队是美国职业棒球界的强队。②乔·迪马吉奥于
  年起进扬基队,以善于击球得分著称。年棒球季后告别球坛。
  "我担心底特律老虎队,也担心克利夫兰印第安人队。"
  "当心点,要不然连辛辛那提红队和芝加哥白短袜队,你都要担心啦。"
  "你好好儿看报,等我回来了给我讲讲。"
  "你看我们该去买张末尾是八五的彩票吗?明儿是第八十五天。"
  "这样做行啊,"孩子说。"不过你上次创纪录的是八十七天,这怎么说?"
  "这种事儿不会再发生。你看能弄到一张末尾是八五的吗?"
  "我可以去订一张。"
  "订一张。这要两块半。我们向谁去借这笔钱呢?"
  "这个容易。我总能借到两块半的。"
  "我看没准儿我也借得到。不过我不想借钱。第一步是借钱。下一步就要讨饭啰。"
  "穿得暖和点,老大爷,"孩子说。"别忘了,我们这是在九月里。"
  "正是大鱼露面的月份,"老人说。"在五月里,人人都能当个好渔夫的。"
  "我现在去捞沙丁鱼,"孩子说。
  等孩子回来的时候,老人在椅子上熟睡着,太阳已经下去了。孩子从床上捡起一条旧军毯,铺在椅背上,盖住了老人的双肩。这两个肩膀挺怪,人非常老迈了,肩膀却依然很强健,脖子也依然很壮实,而且当老人睡着了,脑袋向前耷拉着的时候,皱纹也不大明显了。他的衬衫上不知打了多少次补丁,弄得象他那张帆一样,这些补丁被阳光晒得褪成了许多深浅不同的颜色。老人的头非常苍老,眼睛闭上了,脸上就一点生气也没有。报纸摊在他膝盖上,在晚风中,靠他一条胳臂压着才没被吹走。他光着脚。
  孩子撇下老人走了,等他回来时,老人还是熟睡着。
  "醒来吧,老大爷,"孩子说,一手搭上老人的膝盖。老人张开眼睛,他的神志一时仿佛正在从老远的地方回来。随后他微笑了。
  "你拿来了什么?"他问。
  "晚饭,"孩子说。"我们就来吃吧。"
  "我肚子不大饿。"
  "得了,吃吧。你不能只打鱼,不吃饭。"
  "我这样干过,"老人说着,站起身来,拿起报纸,把它折好。跟着他动手折叠毯子。
  "把毯子披在身上吧,"孩子说。"只要我活着,你就决不会不吃饭就去打鱼。"
  "这么说,祝你长寿,多保重自己吧,"老人说。"我们吃什么?"
  "黑豆饭、油炸香蕉,还有些纯菜。"①①这些是加勒比海地区老百姓的主食。
  孩子是把这些饭菜放在双层饭匣里从露台饭店拿来的。他口袋里有两副刀叉和汤匙,每一副都用纸餐巾包着。
  "这是谁给你的。"
  "马丁。那老板。"
  "我得去谢谢他。"
  "我已经谢过啦,"孩子说。"你用不着去谢他了。"
  "我要给他一块大鱼肚子上的肉,"老人说。"他这样帮助我们不止一次了?"
  "我想是这样吧。"
  "这样的话,我该在鱼肚子肉以外,再送他一些东西。他对我们真关心。"
  "他还送了两瓶啤酒。"
  "我喜欢罐装的啤酒。"
  "我知道。不过这是瓶装的,阿图埃牌啤酒,我还得把瓶子送回去。"
  "你真周到,"老人说。"我们就吃好吗?"
  "我已经问过你啦,"孩子温和地对他说。"不等你准备好,我是不愿打开饭匣子的。"
  "我准备好啦,"老人说。"我只消洗洗手脸就行。"
  你上哪儿去洗呢?孩子想。村里的水龙头在大路上第二条横路的转角上。我该把水带到这儿让他用的,孩子想,还带块肥皂和一条干净毛巾来。我为什么这样粗心大意?我该再弄件衬衫和一件茄克衫来让他过冬,还要一双什么鞋子,并且再给他弄条毯子来。
  "这纯菜呱呱叫,"老人说。
  "给我讲讲棒球赛吧,"孩子请求他说。
  "在美国联赛①中,总是扬基队的天下,我跟你说过啦,"老人兴高采烈地说。
  "他们今儿个输了,"孩子告诉他。
  "这算不上什么,那了不起的迪马吉奥恢复他的本色了。"
  "他们队里还有别的好手哪。"
  "这还用说。不过有了他就不同了。在另一个联赛②中,拿布鲁克林队和费拉德尔菲亚队来说,我相信布鲁克林队。不过话得说回来,我没有忘记迪克·西斯勒和他在那老公园③里打出的那些好球。"①美国职业棒球界按水平高低分大联赛及小联赛两种组织,美国联赛是两大联赛之一,扬基队是其中的佼佼者。②指另一大联赛,全国联赛。这两大联赛每年各通过比赛选出一个胜队,于十月上半在双方的场地轮流比赛,一决雌雄,名为"世界大赛"。③指费拉德尔菲亚的希贝公园,是该市棒球队比赛的主要场地。迪克·西斯勒于年至
  年在该地打球。
  "这些好球从来没有别人打过。我见过的击球中,数他打得最远。"
  "你还记得他过去常来露台饭店吗?我想陪他出海钓鱼,可是不敢对他开口。所以我要你去说,可你也不敢。"
  "我记得。我们真大大地失算了。他满可能跟我们一起出海的。这样,我们可以一辈子回味这回事了。"
  "我满想陪那了不起的迪马吉奥去钓鱼,"老人说。"人家说他父亲也是个打鱼的。也许他当初也象我们这样穷,会领会我们的心意的。"
  "那了不起的西斯勒的爸爸可没过过穷日子,他爸爸象我这样年纪的时候就在联赛里打球了。"①
  "我象你这样年纪的时候,就在一条去非洲的方帆船上当普通水手了,我还见过狮子在傍晚到海滩上来。"
  "我知道。你跟我谈起过。"
  "我们来谈非洲还是谈棒球?"
  "我看谈棒球吧,"孩子说。"给我谈谈那了不起的约翰·J·麦格劳②的情况。"他把这个J念成了"何塔"③。①指乔治·哈罗德·西斯勒,他于年开始参加大联赛,于
  年第一次荣获该年度的"美国联赛中最宝贵球员"的称号。②麦格劳于
  年开始当职业棒球运动员,
  年参加纽约巨人队,担任该队经理,直至
  年,使该队成为著名的强队。他于
  年后就不再上场参加比赛。③J为约瑟夫的首字母,在西班牙语中读为"何塔"。
  "在过去的日子里,他有时候也常到露台饭店来。可是他一喝了酒,就态度粗暴,出口伤人,性子别扭。他脑子里想着棒球,也想着赛马。至少他老是口袋里揣着赛马的名单,常常在电话里提到一些马儿的名字。"
  "他是个伟大的经理,"孩子说。"我爸爸认为他是顶伟大的。"
  "这是因为他来这儿的次数最多,"老人说。"要是多罗彻①继续每年来这儿,你爸爸就会认为他是顶伟大的经理了。"
  "说真的,谁是顶伟大的经理,卢克②还是迈克·冈萨雷斯?"③①列奥·多罗彻为三十年代著名棒球明星,
  年起任纽约巨人队经理,使之成为第一流的强队。②阿道尔福·卢克于
  年生于哈瓦那,
  年前曾先后在波士顿、辛辛那提、布鲁克林及纽约巨人队当球员,后任经理。③四十年代后期曾两度担任圣路易红色棒球队经理。
  "我认为他们不相上下。"
  "顶好的渔夫是你。"
  "不。我知道有不少比我强的。"
  "哪里!"孩子说。"好渔夫很多,还有些很了不起的。不过顶呱呱的只有你。"
  "谢谢你。你说得叫我高兴。我希望不要来一条挺大的鱼,叫我对付不了,那样就说明我们讲错啦。"
  "这种鱼是没有的,只要你还是象你说的那样强壮。"
  "我也许不象我自以为的那样强壮了,"老人说。"可是我懂得不少窍门,而且有决心。"
  "你该就去睡觉,这样明儿早上才精神饱满。我要把这些东西送回露台饭店。"
  "那么祝你晚安。早上我去叫醒你。"
  "你是我的闹钟,"孩子说。
  "年纪是我的闹钟,"老人说。"为什么老头儿醒得特别早?难道是要让白天长些吗?"
  "我说不上来,"孩子说。"我只知道少年睡得沉,起得晚。"
  "我记在心上,"老人说。"到时候会去叫醒你的。"
  "我不愿让船主人来叫醒我。这样似乎我比他差劲了。"
  "我懂。"
  "安睡吧,老大爷。"
  孩子走出屋去。他们刚才吃饭的时候,桌子上没点灯,老人就脱了长裤,摸黑上了床。他把长裤卷起来当枕头,把那张报纸塞在里头。他用毯子裹住了身子,在弹簧垫上铺着的其他旧报纸上睡下了。
  他不多久就睡熟了,梦见小时候见到的非洲,长长的金色海滩和白色海滩,白得耀眼,还有高耸的海岬和褐色的大山。他如今每天夜里都回到那道海岸边,在梦中听见拍岸海浪的隆隆声,看见土人驾船穿浪而行。他睡着时闻到甲板上柏油和填絮的气味,还闻到早晨陆地上刮来的风带来的非洲气息。
  通常一闻到陆地上刮来的风,他就醒来,穿上衣裳去叫醒那孩子。然而今夜陆地上刮来的风的气息来得很早,他在梦中知道时间尚早,就继续把梦做下去,看见群岛的白色顶峰从海面上升起,随后梦见了加那利群岛①的各个港湾和锚泊地。①在北大西洋东部的一个火山群岛,位于摩洛哥西南,当时尚未独立,隶属西班牙。
  他不再梦见风暴,不再梦见妇女们,不再梦见伟大的事件,不再梦见大鱼,不再梦见打架,不再梦见角力,不再梦见他的妻子。他如今只梦见一些地方和海滩上的狮子。它们在暮色中象小猫一般嬉耍着,他爱它们,如同爱这孩子一样。他从没梦见过这孩子。他就这么醒过来,望望敞开的门外边的月亮,摊开长裤穿上。他在窝棚外撒了尿,然后顺着大路走去叫醒孩子。他被清晨的寒气弄得直哆嗦。但他知道哆嗦了一阵后会感到暖和,要不了多久他就要去划船了。
  孩子住的那所房子的门没有上铺,他推开了门,光着脚悄悄走进去。孩子在外间的一张帆布床上熟睡着,老人靠着外面射进来的残月的光线,清楚地看见他。他轻轻握住孩子的一只脚,直到孩子给弄醒了,转过脸来对他望着。老人点点头,孩子从床边椅子上拿起他的长裤,坐在床沿上穿裤子。老人走出门去,孩子跟在他背后。他还是昏昏欲睡,老人伸出胳臂搂住他的肩膀说:"对不起。"
  "哪里!"孩子说。"男子汉就该这么干。"
  他们顺着大路朝老人的窝棚走去,一路上,黑暗中有些光着脚的男人在走动,扛着他们船上的桅杆。
  他们走进老人的窝棚,孩子拿起装在篮子里的钓索卷儿,还有鱼叉和鱼钩,老人把绕着帆的桅杆扛在肩上。
  "想喝咖啡吗?"孩子问。
  "我们把家什放在船里,然后喝一点吧。"
  他们在一家供应渔夫的清早就营业的小吃馆里,喝着盛在炼乳听里的咖啡。
  "你睡得怎么样,老大爷?"孩子问。他如今清醒过来了,尽管要他完全摆脱睡魔还不大容易。
  "睡得很好,马诺林,"老人说。"我感到今天挺有把握。"
  "我也这样,"孩子说。"现在我该去拿你我用的沙丁鱼,还有给你的新鲜鱼饵。那条船上的家什总是他自己拿的。他从来不要别人帮他拿东西。"
  "我们可不同,"老人说。"你还只五岁时我就让你帮忙拿东西来着。"
  "我记得,"孩子说。"我马上就回来。再喝杯咖啡吧。我们在这儿可以挂账。"
  他走了,光着脚在珊瑚石铺的走道上向保藏鱼铒的冷藏库走去。
  老人慢腾腾地喝着咖啡。这是他今儿一整天的饮食,他知道应该把它喝了。好久以来,吃饭使他感到厌烦,因此他从来不带吃食。他在小船的船头上放着一瓶水,一整天只需要这个就够了。
  孩子带着沙丁鱼和两份包在报纸里的鱼饵回来了,他们顺着小径走向小船,感到脚下的沙地里嵌着鹅卵石,他们抬起小船,让它溜进水里。
  "祝你好运,老大爷。"
  "祝你好运,"老人说。他把桨上的绳圈套在桨座的钉子上,身子朝前冲,抵消桨片在水中所遇到的阻力,在黑暗中动手划出港去。其他那些海滩上也有其他船只在出海,老人听到他们的桨落水和划动的声音,尽管此刻月亮已掉到了山背后,他还看不清他们。
  偶尔有条船上有人在说话。但是除了桨声外,大多数船只都寂静无声。它们一出港口就分散开来,每一条驶向指望能找到鱼的那片海面。老人知道自己要驶向远方,所以把陆地的气息抛在后方,划进清晨的海洋的清新气息中。他划过海里的某一片水域,看见果囊马尾藻闪出的磷光,渔夫们管这片水域叫"大井",因为那儿水深突然达到七百英寻①,海流冲击在海底深渊的峭壁上,激起了旋涡,种种鱼儿都聚集在那儿。那儿集中着海虾和作鱼饵用的小鱼,在那些深不可测的水底洞穴里,有时还有成群的柔鱼,它们在夜间浮到紧靠海面的地方,所有在那儿转游的鱼类都拿它们当食物。①测量水深的单位,每英寻等于英尺。
  老人在黑暗中感觉到早晨在来临,他划着划着,听见飞鱼出水时的颤抖声,还有它们在黑暗中凌空飞翔时挺直的翅膀所发出的咝咝声。他非常喜爱飞鱼,拿它们当作他在海洋上的主要朋友。他替鸟儿伤心,尤其是那些柔弱的黑色小燕鸥,它们始终在飞翔,在找食,但几乎从没找到过,于是他想,乌儿的生活过得比我们的还要艰难,除了那些猛禽和强有力的大鸟。既然海洋这样残暴,为什么象这些海燕那样的鸟儿生来就如此柔弱和纤巧?海洋是仁慈并十分美丽的。然而她能变得这样残暴,又是来得这样突然,而这些飞翔的鸟儿,从空中落下觅食,发出细微的哀鸣,却生来就柔弱得不适宜在海上生活。
  他每想到海洋,老是称她为lamar,这是人们对海洋抱着好感时用西班牙语对她的称呼。有时候,对海洋抱着好感的人们也说她的坏话,不过说起来总是拿她当女性看待的。①有些较年轻的渔夫,用浮标当钓索上的浮子,并且在把鲨鱼肝卖了好多钱后置备了汽艇,都管海洋叫elmar ,这是表示男性的说法。他们提起她时,拿她当做一个竞争者或是一个去处,甚至当做一个敌人。可是这老人总是拿海洋当做女性,她给人或者不愿给人莫大的恩惠,如果她干出了任性或缺德的事儿来,那是因为她由不得自己。月亮对她起着影响,如同对一个女人那样,他想。①西班牙语中的"海洋"(mar)可作阴性名词,也可作阳性名词,以前面用的定冠词是阴性(la)还是阳性(el)来区别。
  他从容地划着,对他说来并不吃力,因为他保持在自己的最高速度以内,而且除了偶尔水流打个旋儿以外,海面是平坦无浪的。他正让海流帮他干三分之一的活儿,这时天渐渐亮了,他发现自己已经划到比预期此刻能达到的地方更远了。
  我在这海底的深渊上转游了一个礼拜,可是一无作为,他想。今天,我要找到那些鲣鱼和长鳍金枪鱼群在什么地方,说不定还有条大鱼跟它们在一起呢。
  不等天色大亮,他就放出了一个个鱼饵,让船随着海流漂去。有个鱼饵下沉到四十英寻的深处。第二个在七十五英寻的深处,第三个和第四个分别在蓝色海水中一百英寻和一百二十五英寻的深处。每个由新鲜沙丁鱼做的鱼饵都是头朝下的,钓钩的钩身穿进小鱼的身子,扎好,缝牢,钓钩的所有突出部分,弯钩和尖端,都给包在鱼肉里。每条沙丁鱼都用钓钩穿过双眼,这样鱼的身子在突出的钢钩上构成了半个环形。不管一条大鱼接触到钓钩的哪一部分,都是喷香而美味的。
  孩子给了他两条新鲜的小金枪鱼,或者叫做长鳍金枪鱼,它们正象铅垂般挂在那两根最深的钓索上,在另外两根上,他挂上了一条蓝色大鲹鱼和一条黄色金银鱼,它们已被使用过,但依然完好,而且还有出色的沙丁鱼给它们添上香味和吸引力。每根钓索都象一支大铅笔那么粗,一端给缠在一根青皮钓竿上,这样,只要鱼在鱼饵上一拉或一碰,就能使钓竿朝下落,而每根钓索有两个四十英寻长的卷儿,它们可以牢系在其他备用的卷儿上,这一来,如果用得着的话,一条鱼可以拉出三百多英寻长的钓索。
  这时老人紧盯着那三根挑出在小船一边的钓竿,看看有没有动静,一边缓缓地划着,使钓索保持上下笔直,停留在适当的水底深处。天相当亮了,太阳随时会升起来。
  淡淡的太阳从海上升起,老人看见其他的船只,低低地挨着水面,离海岸不远,和海流的方向垂直地展开着。跟着太阳越发明亮了,耀眼的阳光射在水面上,随后太阳从地平线上完全升起,平坦的海面把阳光反射到他眼睛里,使眼睛剧烈地刺痛,因此他不朝太阳看,顾自划着。他俯视水中,注视着那几根一直下垂到黑魆魆的深水里的钓索。他把钓索垂得比任何人更直,这样,在黑魆魆的湾流深处的几个不同的深度,都会有一个鱼饵刚好在他所指望的地方等待着在那儿游动的鱼来吃。别的渔夫让钓索随着海流漂去,有时候钓索在六十英寻的深处,他们却自以为在一百英寻的深处呢。
  不过,他想,我总是把它们精确地放在适当的地方的。问题只在于我的运气就此不好了。可是谁说得准呢?说不定今天就转运。每一天都是一个新的日子。走运当然是好。不过我情愿做到分毫不差。这样,运气来的时候,你就有所准备了。
  两小时过去了,太阳如今相应地升得更高了,他朝东望时不再感到那么刺眼了。眼前只看得见三条船,它们显得特别低矮,远在近岸的海面上。
  我这一辈子,初升的太阳老是刺痛我的眼睛,他想。然而眼睛还是好好的。傍晚时分,我可以直望着太阳,不会有眼前发黑的感觉。阳光的力量在傍晚也要强一些。不过在早上它叫人感到眼痛。
  就在这时,他看见一只长翅膀的黑色军舰鸟在他前方的天空中盘旋飞翔。它倏地斜着后掠的双翅俯冲,然后又盘旋起来。
  "它逮住了什么东西啦,"老人说出声来。"它不光是找找罢了。"
  他慢慢划着,直朝鸟儿盘旋的地方划去。他并不匆忙,让那些钓索保持着上下笔直的位置。不过他还是挨近了一点儿海流,这样,他依然在用正确的方式捕鱼,尽管他的速度要比他不打算利用鸟儿来指路时来得快。
  军舰鸟在空中飞得高些了,又盘旋起来,双翅纹丝不动。它随即猛然俯冲下来,老人看见飞鱼从海里跃出,在海面上拚命地掠去。
  "鲯鳅,"老人说出声来。"大鲯鳅。"
  他把双桨从桨架上取下,从船头下面拿出一根细钓丝。钓丝上系着一段铁丝导线和一只中号钓钩,他拿一条沙丁鱼挂在上面。他把钓丝从船舷放下水去,将上端紧系在船梢一只拳头螺栓上。跟着他在另一根钓丝上安上了鱼饵,把它盘绕着搁在船头的阴影里。他又划起船来,注视着那只此刻正在水面上低低地飞掠的长翅膀黑鸟。
  他看着看着,那鸟儿又朝下冲,为了俯冲,把翅膀朝后掠,然后猛地展开,追踪着飞鱼,可是没有成效。老人看见那些大鲯鳅跟在那脱逃的鱼后面,把海面弄得微微隆起。鲯鳅在飞掠的鱼下面破水而行,只等飞鱼一掉下,就飞快地钻进水里。这群鲯鳅真大啊,他想。它们分布得很广,飞鱼很少脱逃的机会。那只鸟可没有成功的机会。飞鱼对它来说个头太大了,而且又飞得太快。
  他看着飞鱼一再地从海里冒出来,看着那只鸟儿的一无效果的行动。那群鱼从我附近逃走啦,他想。它们逃得太快,游得太远啦。不过说不定我能逮住一条掉队的,说不定我想望的大鱼就在它们周围转游着。我的大鱼总该在某处地方啊。
  陆地上空的云块这时象山岗般耸立着,海岸只剩下一长条绿色的线,背后是些灰青色的小山。海水此刻呈深蓝色,深得简直发紫了。他仔细俯视着海水,只见深蓝色的水中穿梭地闪出点点红色的浮游生物,阳光这时在水中变幻出奇异的光彩。他注视着那几根钓索,看见它们一直朝下没入水中看不见的地方,他很高兴看到这么多浮游生物,因为这说明有鱼。太阳此刻升得更高了,阳光在水中变幻出奇异的光彩,说明天气晴朗,陆地上空的云块的形状也说明了这一点。可是那只鸟儿这时几乎看不见了,水面上没什么东西,只有几摊被太阳晒得发白的黄色马尾藻和一只紧靠着船舷浮动的僧帽水母,它那胶质的浮囊呈紫色,具有一定的外形,闪现出彩虹般的颜色。它倒向一边,然后又竖直了身子。它象个大气泡般高高兴兴地浮动着,那些厉害的紫色长触须在水中拖在身后,长达一码。
  "Aguamala,"老人说。"你这婊子养的。" ①他从坐着轻轻荡桨的地方低头朝水中望去,看见一些颜色跟那些拖在水中的触须一样的小鱼,它们在触须和触须之间以及浮囊在浮动时所投下的一小摊阴影中游着。它们对它的毒素是不受影响的。可是人就不同了,当老人把一条鱼拉回船来时,有些触须会缠在钓丝上,紫色的黏液附在上面,他的胳臂和手上就会出现伤痕和疮肿,就象被毒漆树或栎叶毒漆树感染时一样。但是这水母的毒素发作得更快,痛得象挨鞭子抽一般。①西班牙语,意为"被败坏了的海水",因为水母的触须上有带有毒性的黏液,见下文。
  这些闪着彩虹般颜色的大气泡很美。然而它们正是海里最欺诈成性的生物,所以老人乐意看到大海龟把它们吃掉。海龟发现了它们,就从正面向它们进逼,然后闭上了眼睛,这样,从头到尾完全被龟背所保护着,把它们连同触须一并吃掉。老人喜欢观看海龟把它们吃掉,喜欢在风暴过后在海滩上遇上它们,喜欢听到自己用长着老茧的硬脚掌踩在上面时它们啪地爆裂的声音。
  他喜欢绿色的海龟和玳瑁,它们形态优美,游水迅速,价值很高,他还对那又大又笨的蠵龟抱着不怀恶意的轻蔑,它们的甲壳是黄色的,做爱的方式是奇特的,高高兴兴地吞食僧帽水母时闭上了眼睛。
  他对海龟并不抱着神秘的看法,尽管他曾多年乘小船去捕海龟。他替所有的海龟伤心,甚至包括那些跟小船一样长、重达一吨的大梭龟。人们大都对海龟残酷无情,因为一只海龟给剖开、杀死之后,它的心脏还要跳动好几个钟点。然而老人想,我也有这样一颗心脏,我的手脚也跟它们的一样。他吃白色的海龟蛋,为了使身子长力气。他在五月份连吃了整整一个月,使自己到九、十月份能身强力壮,去逮地道的大鱼。
  他每天还从不少渔夫存放家什的棚屋中一只大圆桶里舀一杯鲨鱼肝油喝。这桶就放在那儿,想喝的渔夫都可以去。大多数渔夫厌恶这种油的味道。但是也并不比摸黑早起更叫人难受,而且它对防治一切伤风流感都非常有效,对眼睛也有好处。
  老人此刻抬眼望去,看见那只鸟儿又在盘旋了。
  "它找到鱼啦,"他说出声来,这时没有一条飞鱼冲出海面,也没有小鱼纷纷四处逃窜。然而老人望着望着,只见一条小金枪鱼跃到空中,一个转身,头朝下掉进水里。这条金枪鱼在阳光中闪出银白色的光,等它回到了水里,又有些金枪鱼一条接着一条跃出水面,它们是朝四面八方跳的,搅得海水翻腾起来,跳得很远地捕食小鱼。它们正绕着小鱼转,驱赶着小鱼。
  要不是它们游得这么快,我可以赶到它们中间去的,老人想,他注视着这群鱼把水搅得泛出白色的水沫,还注视着那鸟儿这时正俯冲下来,扎进在惊慌中被迫浮上海面的小鱼群中。
  "这只鸟真是个大帮手,"老人说。就在这当儿,船梢的那根细钓丝在他脚下绷紧了,原来他在脚上绕了一圈,于是他放下双桨,紧紧抓住细钓丝,动手往回拉,感到那小金枪鱼在颤巍巍地拉着,有点儿分量。他越往回拉,钓丝就越是颤巍,他看见水里蓝色的鱼背和金色的两侧,然后把钓丝呼的一甩,使鱼越过船舷,掉在船中。鱼躺在船梢的阳光里,身子结实,形状象颗子弹,一双痴呆的大眼睛直瞪着,动作干净利落的尾巴敏捷、发抖地拍打着船板,砰砰有声,逐渐耗尽了力气。老人出于好意,猛击了一下它的头,一脚把它那还在抖动的身子踢到船梢背阴的地方。
  "长鳍金枪鱼,"他说出声来。"拿来钓大鱼倒满好。它有十磅重。"
  他记不起他是什么时候第一次开始在独自待着的当儿自言自语的了。往年他独自待着时曾唱歌来着,有时候在夜里唱,那是在小渔船或捕海龟的小艇上值班掌舵时的事。他大概是在那孩子离开了他、他独自待着时开始自言自语的。不过他记不清了。他跟孩子一块儿捕鱼时,他们一般只在有必要时才说话。他们在夜间说话来着,要不,碰到坏天气,被暴风雨困在海上的时候。没有必要不在海上说话,被认为是种好规矩,老人一向认为的确如此,始终遵守它。可是这会儿他把心里想说的话说出声来有好几次了,因为没有旁人会受到他说话的打扰。
  "要是别人听到我在自言自语,会当我发疯了,"他说出声来。"不过既然我没有发疯,我就不管,还是要说。有钱人在船上有收音机对他们谈话,还把棒球赛的消息告诉他们。"现在可不是思量棒球赛的时刻,他想。现在只应该思量一桩事。就是我生来要干的那桩事。那个鱼群周围很可能有一条大的,他想。我只逮住了正在吃小鱼的金枪鱼群中一条失散的。可是它们正游向远方,游得很快。今天凡是在海面上露面的都游得很快,向着东北方向。难道一天的这个时辰该如此吗?要不,这是什么我不懂得的天气征兆?
  他眼下已看不见海岸的那一道绿色了,只看得见那些青山的仿佛积着白雪的山峰,以及山峰上空象是高耸的雪山般的云块。海水颜色深极了,阳光在海水中幻成彩虹七色。那数不清的斑斑点点的浮游生物,由于此刻太阳升到了头顶上空,都看不见了,眼下老人看得见的仅仅是蓝色海水深处幻成的巨大的七色光带,还有他那几根笔直垂在有一英里深的水中的钓索。
  渔夫们管所有这种鱼都叫金枪鱼,只有等到把它们卖出,或者拿来换鱼饵时,才分别叫它们各自的专用名字。这时它们又沉下海去了。阳光此刻很热,老人感到脖颈上热辣辣的,划着划着,觉得汗水一滴滴地从背上往下淌。
  我大可随波逐流,他想,管自睡去,预先把钓索在脚趾上绕上一圈,有动静时可以把我弄醒。不过今天是第八十五天,我该一整天好好钓鱼。
  就在这时,他凝视着钓索,看见其中有一根挑出在水面上的绿色钓竿猛地往水中一沉。
  "来啦,"他说。"来啦,"说着从桨架上取下双桨,没有让船颠簸一下。他伸手去拉钓索,把它轻轻地夹在右手大拇指和食指之间。他感到钓索并不抽紧,也没什么分量,就轻松地握着。跟着它又动了一下。这回是试探性的一拉,拉得既不紧又不重,他就完全明白这是怎么回事了。在一百英寻的深处有条大马林鱼正在吃包住钓钩尖端和钩身的沙丁鱼,这个手工制的钓钩是从一条小金枪鱼的头部穿出来的。
  老人轻巧地攥着钓索,用左手把它从竿子上轻轻地解下来。他现在可以让它穿过他手指间滑动,不会让鱼感到一点儿牵引力。
  在离岸这么远的地方,它长到本月份,个头一定挺大了,他想。吃鱼饵吧,鱼啊。吃吧。请你吃吧。这些鱼饵多新鲜,而你啊,待在这六百英尺的深处,在这漆黑黑的冷水里。在黑暗里再绕个弯子,拐回来把它们吃了吧。
  他感到微弱而轻巧地一拉,跟着较猛烈地一拉,这时准是有条沙丁鱼的头很难从钓钩上扯下来。然后没有一丝动静了。
  "来吧,"老人说出声来。"再绕个弯子吧。闻闻这些鱼饵。它们不是挺鲜美吗?趁它们还新鲜的时候吃了,回头还有那条金枪鱼。又结实,又凉快,又鲜美。别怕难为情,鱼儿。把它们吃了吧。"
  他把钓索夹在大拇指和食指之间等待着。同时盯着它和其他那几根钓索,因为这鱼可能已游到了高一点的地方或低一点的地方。跟着又是那么轻巧地一拉。
  "它会咬饵的,"老人说出声来。"求天主帮它咬饵吧。"然而它没有咬饵。它游走了,老人没感到有任何动静。
  "它不可能游走的,"他说。"天知道它是不可能游走的。它正在绕弯子呐。也许它以前上过钩,还有点儿记得。"
  跟着他感到钓索轻轻地动了一下,他高兴了。
  "它刚才不过是在转身,"他说。"它会咬饵的。"
  感到这轻微的一拉,他很高兴,接着他感到有些猛拉的感觉,很有份量,叫人难以相信。这是鱼本身的重量造成的,他就松手让钓索朝下溜,一直朝下,朝下溜,从那两卷备用钓索中的一卷上放出钓索。它从老人的指间轻轻地滑下去的时候,他依旧感到很大的分量,尽管他的大拇指和食指施加的压力简直小得觉察不到。
  "多棒的鱼啊,"他说。"它正把鱼饵斜叼在嘴里,带着它在游走呐。"
  它就会掉过头来把饵吞下去的,他想。他没有把这句话说出声来,因为他知道,一桩好事如果说破了,也许就不会发生了。他知道这条鱼有多大,他想象到它嘴里横衔着金枪鱼,在黑暗中游走。这时他觉得它停止不动了,可是分量还是没变。跟着分量越来越重了,他就再放出一点钓索。他一时加强了大拇指和食指上的压力,于是钓索上的分量增加了,一直传到水中深处。
  "它咬饵啦,"他说。"现在我来让它美美地吃一顿。"
  他让钓索在指间朝下溜,同时伸出左手,把两卷备用钓索的一端紧系在旁边那根钓索的两卷备用钓索上。他如今准备好了。他眼下除了正在使用的那钓索卷儿,还有三个四十英寻长的卷儿可供备用。
  "再吃一些吧,"他说。"美美地吃吧。"
  吃了吧,这样可以让钓钩的尖端扎进你的心脏,把你弄死,他想。轻松愉快地浮上来吧,让我把鱼叉刺进你的身子。得了。你准备好了?你进餐得时间够长了吗?
  "着啊!"他说出声来,用双手使劲猛拉钓索,收进了一码,然后连连猛拉,使出胳膊上的全副劲儿,拿身子的重量作为支撑,挥动双臂,轮换地把钓索往回拉。
  什么用也没有。那鱼只顾慢慢地游开去,老人无法把它往上拉一英寸。他这钓索很结实,是制作来钓大鱼的,他把它套在背上猛拉,钓索给绷得太紧,上面竟蹦出水珠来。
  随后它在水里渐渐发出一阵拖长的咝咝声,但他依旧攥着它,在座板上死劲撑住了自己的身子,仰着上半身来抵消鱼的拉力。船儿慢慢地向西北方向驶去。
  大鱼一刻不停地游着,鱼和船在平静的水面上慢慢地行进。另外那几个鱼饵还在水里,没有动静,用不着应付。
  "但愿那孩子在这儿就好了,"老人说出声来,"我正被一条鱼拖着走,成了一根系纤绳的短柱啦。我可以把钓索系在船舷上。不过这一来鱼儿会把它扯断的。我得拚命牵住它,必要的时候给它放出钓索。谢谢老天,它还在朝前游,没有朝下沉。"
  如果它决意朝下沉,我该怎么办?我不知道。如果它潜入海底,死在那儿,我该怎么办?我不知道。可是我必须干些什么。我能做的事情多着呢。
  他攥住了勒在背脊上的钓索,紧盯着它直往水中斜去,小船呢,不停地朝西北方驶去。
  这样能叫它送命,老人想。它不能一直这样干下去。然而过了四个钟点,那鱼照样拖着这条小船,不停地向大海游去,老人呢,依然紧紧攥着勒在背脊上的钓索。"我是中午把它钓上的,"他说。"可我始终还没见过它。"
  他在钓上这鱼以前,把草帽拉下,紧扣在脑瓜上,这时勒得他的脑门好痛。他还觉得口渴,就双膝跪下,小心不让扯动钓索,尽量朝船头爬去,伸手去取水瓶。他打开瓶盖,喝了一点儿,然后靠在船头上休息。他坐在从桅座上拔下的绕着帆的桅杆上,竭力不去想什么,只顾熬下去。
  等他回顾背后时,一看陆地已没有一丝踪影了。这没有关系,他想。我总能靠着哈瓦那的灯火回港的。太阳下去还有两个钟点,也许不到那时鱼就会浮上来。如果它不上来,也许会随着月出浮上来。如果它不这样干,也许会随着日出浮上来。我手脚没有抽筋,我感到身强力壮。是它的嘴给钓住了啊。不过拉力这样大,该是条多大的鱼啊。它的嘴准是死死地咬住了钢丝钓钩。但愿能看到它。但愿能知道我这对手是什么样儿的,哪怕只看一眼也好。
  老人凭着观察天上的星斗,看出那鱼整整一夜始终没有改变它的路线和方向。太阳下去后,天气转凉了,老人的背脊、胳膊和衰老的腿上的汗水都干了,感到发冷。白天里,他曾把盖在鱼饵匣上的麻袋取下,摊在阳光里晒干。太阳下去了,他把麻袋系在脖子上,让它披在背上,他并且小心地把它塞在如今正挂在肩上的钓索下面。有麻袋垫着钓索,他就可以弯腰向船头靠去,这样简直可说很舒服了。这姿势实在只能说是多少叫人好受一点儿,可是他自以为简直可说很舒服了。
  我拿它一点没办法,它也拿我一点没办法,他想。只要它老是这样干下去,双方都一点没办法。
  他有一回站起身来,隔着船舷撒尿,然后抬眼望着星斗,核对他的航向。钓索从他肩上一直钻进水里,看来象一道磷光。鱼和船此刻行动放慢了。哈瓦那的灯火也不大辉煌,他于是明白,海流准是在把他们双方带向东方。如果我就此看不见哈瓦那炫目的灯光,我们一定是到了更东的地方,他想。因为,如果这鱼的路线没有变的话,我准会好几个钟点看得见灯光。不知今天的棒球大联赛结果如何,他想。干这行当有台收音机才美哪。接着他想,老是惦记着这玩意儿。想想你正在干的事情吧。你哪能干蠢事啊。
  然后他说出声来:"但愿孩子在就好了。可以帮我一手,让他见识见识这种光景。"
  谁也不该上了年纪独个儿待着,他想。不过这也是避免不了的。为了保养体力,我一定要记住趁金枪鱼没坏时就吃。记住了,哪怕你只想吃一点点,也必须在早上吃。记住了,他对自己说。
  夜间,两条海豚游到小船边来,他听见它们翻腾和喷水的声音。他能辩别出那雄的发出的喧闹的喷水声和那雌的发出的喘息般的喷水声。
  "它们都是好样的,"他说。"它们嬉耍,打闹,相亲相爱。它们是我们的兄弟,就象飞鱼一样。"
  跟着他怜悯起这条被他钓住的大鱼来了。它真出色,真奇特,而且有谁知道它年龄多大呢,他想。我从没钓到过这样强大的鱼,也没见过行动这样奇特的鱼。也许它太机灵,不愿跳出水来。它可以跳出水来,或者来个猛冲,把我搞垮。不过,也许它曾上钩过好多次,所以知道应该如何搏斗。它哪会知道它的对手只有一个人,而且是个老头儿。不过它是条多大的鱼啊,如果鱼肉良好的话,在市场上能卖多大一笔钱啊,它咬起饵来象条雄鱼,拉起钓索来也象雄鱼,搏斗起来一点也不惊慌。不知道它有没有什么打算,还是就跟我一样地不顾死活?
  他想起有一回钓到了一对大马林鱼中的一条。雄鱼总是让雌的先吃,那条上了钩的正是雌鱼,它发了狂,惊慌失措而绝望地挣扎着,不久就筋疲力尽了,那条雄鱼始终待在它身边,在钓索下窜来窜去,陪着它在水面上一起打转。这雄鱼离钓索好近,老人生怕它会用它的尾巴把钓索割断,这尾巴象大镰刀般锋利,大小和形状都和大镰刀差不多。老人用鱼钩把雌鱼钩上来,用棍子揍它,握住了那边缘如沙纸似的轻剑般的长嘴,连连朝它头顶打去,直打得它的颜色变成和镜子背面的红色差不多,然后由孩子帮忙,把它拖上船去,这当儿,雄鱼一直待在船舷边。跟着,当老人忙着解下钓索、拿起鱼叉的时候,雄鱼在船边高高地跳到空中,看看雌鱼在哪里,然后掉下去,钻进深水里,它那淡紫色的翅膀,实在正是它的胸鳍,大大地张开来,于是它身上所有的淡紫色的宽条纹都露出来了。它是美丽的,老人想起,而它始终待在那儿不走。
  它们这情景是我看到的最伤心的了,老人想。孩子也很伤心,因此我们请求这条雌鱼原谅,马上把它宰了。
  "但愿孩子在这儿就好了,"他说出声来,把身子安靠在船头的边缘已被磨圆的木板上,通过勒在肩上的钓索,感到这条大鱼的力量,它正朝着它所选择的方向稳稳地游去。
  由于我干下了欺骗它的勾当,它不得不作出选择了,老人想。
  它选择的是待在黑暗的深水里,远远地避开一切圈套、罗网和诡计。我选择的是赶到谁也没到过的地方去找它。到世界上没人去过的地方。现在我跟它给拴在一起了,从中午起就是如此。而且我和它都没有谁来帮忙。
  也许我不该当渔夫,他想。然而这正是我生来该干的行当。我一定要记住,天亮后就吃那条金枪鱼。
  离天亮还有点时候,有什么东西咬住了他背后的一个鱼饵。他听见钓竿啪的折断了,于是那根钓索越过船舷朝外直溜。他摸黑拔出鞘中的刀子,用左肩承担着大鱼所有的拉力,身子朝后靠,就着木头的船舷,把那根钓索割断了。然后把另一根离他最近的钓索也割断了,摸黑把这两个没有放出去的钓索卷儿的断头系在一起。他用一只手熟练地干着,在牢牢地打结时,一只脚踩住了钓索卷儿,免得移动。他现在有六卷备用钓索了。他刚才割断的那两根有鱼饵的钓索各有两卷备用钓索,加上被大鱼咬住鱼饵的那根上的两卷,它们全都接在一起了。
  等天亮了,他想,我要好歹回到那根把鱼饵放在水下四十英寻深处的钓索边,把它也割断了,连结在那些备用钓索卷儿上。我将丢掉两百英寻出色的卡塔卢尼亚①钓索,还有钓钩和导线。这些都是能再置备的。万一钓上了别的鱼,把这条大鱼倒搞丢了,那再往哪儿去找呢?我不知道刚才咬饵的是什么鱼。很可能是条大马林鱼,或者剑鱼,或者鲨鱼。我根本来不及琢磨。我不得不赶快把它摆脱掉。①西班牙古地区名,包括今东北部四省。
  他说出声来:"但愿那孩子在这里。"
  可是孩子并不在这里,他想。你只有你自己一个人,你还是好歹回到最末的那根钓索边,不管天黑不黑,把它割断了,系上那两卷备用钓索。
  他就这样做了。摸黑干很困难,有一回,那条大鱼掀动了一下,把他拖倒在地,脸朝下,眼睛下划破了一道口子。鲜血从他脸颊上淌下来。但还没流到下巴上就凝固了,干掉了,于是他挪动身子回到船头,靠在木船舷上歇息。他拉好麻袋,把钓索小心地挪到肩上另一个地方,用肩膀把它固定住,握住了小心地试试那鱼拉曳的份量,然后伸手到水里测度小船航行的速度。
  不知道这鱼为什么刚才突然摇晃了一下,他想。敢情是钓索在它高高隆起的背脊上滑动了一下。它的背脊当然痛得及不上我的。然而不管它力气多大,总不能永远拖着这条小船跑吧。眼下凡是会惹出乱子来的东西都除掉了,我却还有好多备用的钓索,一个人还能有什么要求呢。
  "鱼啊,"他轻轻地说出声来,"我跟你奉陪到死。"依我看,它也要跟我奉陪到死的,老人想,他等待着天明。眼下正当破晓前的时分,天气很冷,他把身子紧贴着木船舷来取暖。它能熬多久,我也能熬多久,他想。天色微明中,钓索伸展着,朝下通到水中。小船平稳地移动着,初升的太阳一露边儿,阳光直射在老人的右肩上。
  "它在朝北走啊,"老人说。海流会把我们远远地向东方送去,他想。但愿它会随着海流拐弯。这样可以说明它越来越疲乏了。
  等太阳升得更高了,老人发觉这鱼并不越来越疲乏。只有一个有利的征兆。钓索的斜度说明它正在较浅的地方游着。这不一定表示它会跃出水来。但它也许会这样。
  "天主啊,叫它跳跃吧,"老人说。"我的钓索够长,可以对付它。"
  也许我把钓索稍微拉紧一点儿,让它觉得痛,它就会跳跃了,他想。既然是白天了,就让它跳跃吧,这样它会把沿着背脊的那些液囊装满了空气,它就没法沉到海底去死了。
  他动手拉紧钓索,可是自从他钓上这条鱼以来,钓索已经绷紧到快要迸断的地步,他向后仰着身子来拉,感到它硬邦邦的,就知道没法拉得更紧了。我千万不能猛地一拉,他想。每猛拉一次,会把钓钩划出的口子弄得更宽些,等它当真跳跃起来,它也许会把钓钩甩掉。反正太阳出了,我觉得好过些,这一回我不用盯着太阳看了。
  钓索上粘着黄色的海藻,可是老人知道这只会给鱼增加一些拉力,所以很高兴。正是这种黄色的果囊马尾藻在夜间发出很强的磷光。
  "鱼啊,"他说,"我爱你,非常尊敬你。不过今天无论如何要把你杀死。"
  但愿如此,他想。一只小鸟从北方朝小船飞来。那是只鸣禽,在水面上飞得很低。老人看出它非常疲乏了。
  鸟儿飞到船梢上,在那儿歇一口气。然后它绕着老人的头飞了一圈,落在那根钓索上,在那儿它觉得比较舒服。"你多大了?"老人问鸟儿。"你这是第一次出门吗?"
  他说话的时候,鸟儿望着他。它太疲乏了,竟没有细看这钓索,就用小巧的双脚紧抓住了钓索,在上面摇啊晃的。
  "这钓索很稳当,"老人对它说。"太稳当啦。夜里风息全无,你怎么会这样疲乏啊。鸟儿都怎么啦?"
  因为有老鹰,他想,飞到海上来追捕它们。但是这话他没跟这鸟儿说,反正它也不懂他的话,而且很快就会知道老鹰的厉害。
  "好好儿歇歇吧,小鸟,"他说。"然后投身进去,碰碰运气,象任何人或者鸟或者鱼那样。"
  他靠说话来鼓劲,因为他的背脊在夜里变得僵直,眼下真痛得厉害。
  "鸟儿,乐意的话就住在我家吧,"他说。"很抱歉,我不能趁眼下刮起小风的当儿,扯起帆来把你带回去。可是我总算有个朋友在一起了。"
  就在这当儿,那鱼陡地一歪,把老人拖倒在船头上,要不是他撑住了身子,放出一段钓索,早把他拖到海里去了。钓索猛地一抽时,鸟儿飞走了,老人竟没有看到它飞走。
  他用右手小心地摸摸钓索,发现手上正在淌血。
  "这么说这鱼给什么东西弄伤了,"他说出声来,把钓索往回拉,看能不能叫鱼转回来。但是拉到快绷断的当儿,他就握稳了钓索,身子朝后倒,来抵消钓索上的那股拉力。
  "你现在觉得痛了吧,鱼,"他说。"老实说,我也是如此啊。"
  他掉头寻找那只小鸟,因为很乐意有它来作伴。鸟儿飞走了。
  你没有待多久,老人想。但是你去的地方风浪较大,要飞到了岸上才平安。我怎么会让那鱼猛地一拉,划破了手?我一定是越来越笨了。要不,也许是因为只顾望着那只小鸟,想着它的事儿。现在我要关心自己的活儿,过后得把那金枪鱼吃下去,这样才不致没力气。
  "但愿那孩子在这儿,并且我手边有点儿盐就好了,"他说出声来。
  他把沉甸甸的钓索挪到左肩上,小心地跪下,在海水里洗手,把手在水里浸了一分多钟,注视着血液在水中漂开去,海水随着船的移动在他手上平稳地拍打着。
  "它游得慢多了,"他说。
  老人巴不得让他的手在这盐水中多浸一会儿,但害怕那鱼又陡地一歪,于是站起身,打叠起精神,举起那只手,朝着太阳。手不过被钓索勒了一下,割破了肉。然而正是手上最得用的地方。他知道需要这双手来干成这桩事,不喜欢还没动手就让手给割破。
  "现在,"等手晒干了,他说,"我该吃小金枪鱼了。我可以用鱼钩把它钓过来,在这儿舒舒服服地吃。"
  他跪下来,用鱼钩在船梢下找到了那条金枪鱼,小心不让它碰着那几卷钓索,把它钩到自己身边来。他又用左肩挎住了钓索,把左手和胳臂撑在座板上,从鱼钩上取下金枪鱼,再把鱼钩放回原处。他把一膝压在鱼身上,从它的脖颈竖割到尾部,割下一条条深红色的鱼肉。这些肉条的断面是楔形的,他从脊骨边开始割,直割到肚子边,他割下了六条,把它们摊在船头的木板上,在裤子上擦擦刀子,拎起鱼尾巴,把骨头扔在海里。
  "我想我是吃不下一整条的,"他说,用刀子把一条鱼肉一切为二。他感到那钓索一直紧拉着,他的左手抽起筋来。这左手紧紧握住了粗钓索,他厌恶地朝它看着。
  "这算什么手啊,"他说。"随你去抽筋吧。变成一只鸟爪吧。对你可不会有好处。"
  快点,他想,望着斜向黑暗的深水里的钓索。快把它吃了,会使手有力气的。不能怪这只手不好,你跟这鱼已经打了好几个钟点的交道啦。不过你是能跟它周旋到底的。马上把金枪鱼吃了。
  他拿起半条鱼肉,放在嘴里,慢慢地咀嚼。倒并不难吃。好好儿咀嚼,他想,把汁水都咽下去。如果加上一点儿酸橙或者柠檬或者盐,味道可不会坏。
  "手啊,你感觉怎么样?"他问那只抽筋的手,它僵直得几乎跟死尸一般。"我为了你再吃一点儿。"
  他吃着他切成两段的那条鱼肉的另外一半。他细细地咀嚼,然后把鱼皮吐出来。
  "觉得怎么样,手?或者现在还答不上来?"
  他拿起一整条鱼肉,咀嚼起来。
  "这是条壮实而血气旺盛的鱼。"他想。"我运气好,捉到了它,而不是条鲯鳅。鲯鳅太甜了。这鱼简直一点也不甜,元气还都保存着。"
  然而最有道理的还是讲究实用,他想。但愿我有点儿盐。我还不知道太阳会不会把剩下的鱼肉给晒坏或者晒干,所以最好把它们都吃了,尽管我并不饿。那鱼现在又平静又安稳。我把这些鱼肉统统吃了,就有充足的准备啦。
  "耐心点吧,手,"他说。"我这样吃东西是为了你啊。"
  我巴望也能喂那条大鱼,他想。它是我的兄弟。可是我不得不把它弄死,我得保持精力来这样做。他认真地慢慢儿把那些楔形的鱼肉条全都吃了。
  他直起腰来,把手在裤子上擦了擦。
  "行了,"他说。"你可以放掉钓索了,手啊,我要单单用右臂来对付它,直到你不再胡闹。"他把左脚踩住刚才用左手攥着的粗钓索,身子朝后倒,用背部来承受那股拉力。
  "天主帮助我,让这抽筋快好吧,"他说。"因为我不知道这条鱼还要怎么着。"
  不过它似乎很镇静,他想,而且在按着它的计划行动。可是它的计划是什么,他想。我的又是什么?我必须随机应变,拿我的计划来对付它的,因为它个儿这么大。如果它跳出水来,我能弄死它。但是它始终待在下面不上来。那我也就跟它奉陪到底。
  他把那只抽筋的手在裤子上擦擦,想使手指松动松动。可是手张不开来。也许随着太阳出来它能张开,他想。也许等那些养人的生金枪鱼肉消化后,它能张开。如果我非靠这只手不可,我要不惜任何代价把它张开。但是我眼下不愿硬把它张开。让它自行张开,自动恢复过来吧。我毕竟在昨夜把它使用得过度了,那时候不得不把各条钓索解开,系在一起。
  他眺望着海面,发觉他此刻是多么孤单。但是他可以看见漆黑的海水深处的彩虹七色、面前伸展着的钓索和那平静的海面上的微妙的波动。由于贸易风的吹刮,这时云块正在积聚起来,他朝前望去,见到一群野鸭在水面上飞,在天空的衬托下,身影刻划得很清楚,然后模糊起来,然后又清楚地刻划出来,于是他发觉,一个人在海上是永远不会感到孤单的。
  他想到有些人乘小船驶到了望不见陆地的地方,会觉得害怕,他明白在天气会突然变坏的那几月里,他们是有理由害怕的。可是如今正当刮飓风的月份,而在不刮的时候,这些月份正是一年中天气最佳的时候。
  如果将刮飓风,而你正在海上的话,你总能在好几天前就看见天上有种种迹象。人们在岸上可看不见,因为他们不知道该找什么,他想。陆地上一定也看得见异常的现象,那就是云的式样不同。但是眼前不会刮飓风。
  他望望天空,看见一团团白色的积云,形状象一堆堆可人心意的冰淇淋,而在高高的上空,高爽的九月的天空衬托着一团团羽毛般的卷云。
  "轻风,"他说。"这天气对我比对你更有利,鱼啊。"
  他的左手依然在抽筋,但他正在慢慢地把它张开。
  我恨抽筋,他想。这是对自己身体的背叛行为。由于食物中毒而腹泻或者呕吐,是在别人面前丢脸。但是抽筋,在西班牙语中叫calambre,是丢自己的脸,尤其是一个人独自待着的时候。
  要是那孩子在这儿,他可以给我揉揉胳臂,从前臂一直往下揉,他想。不过这手总会松开的。
  随后,他用右手去摸钓索,感到上面的份量变了,这才看见在水里的斜度也变了。跟着,他俯身朝着钓索,把左手啪地紧按在大腿上,看见倾斜的钓索在慢慢地向上升起。
  "它上来啦,"他说。"手啊,快点。请快一点。"
  钓索慢慢儿稳稳上升,接着小船前面的海面鼓起来了,鱼出水了。它不停地往上冒,水从它身上向两边直泻。它在阳光里亮光光的,脑袋和背部呈深紫色,两侧的条纹在阳光里显得宽阔,带着淡紫色。它的长嘴象棒球棒那样长,逐渐变细,象一把轻剑,它把全身从头到尾都露出水面,然后象潜水员般滑溜地又钻进水去,老人看见它那大镰刀般的尾巴没入水里,钓索开始往外飞速溜去。
  "它比这小船还长两英尺,"老人说。钓索朝水中溜得既快又稳,说明这鱼并没有受惊。老人设法用双手拉住钓索,用的力气刚好不致被鱼扯断。他明白,要是他没法用稳定的劲儿使鱼慢下来,它就会把钓索全部拖走,并且绷断。
  它是条大鱼,我一定要制服它,他想。我一定不能让它明白它有多大的力气,明白如果飞逃的话,它能干出什么来。我要是它,我眼下就要使出浑身的力气,一直飞逃到什么东西绷断为止。但是感谢上帝它们没有我们这些要杀害它们的人聪明,尽管它们比我们高尚,更有能耐。
  老人见过许多大鱼。他见过许多超过一千磅的,前半辈子也曾逮住过两条这么大的,不过从未独自一个人逮住过。现在正是独自一个人,看不见陆地的影子,却在跟一条比他曾见过、曾听说过的更大的鱼紧拴在一起,而他的左手依旧拳曲着,象紧抓着的鹰爪。
  可是它就会复原的,他想。它当然会复原,来帮助我的右手。有三样东西是兄弟:那条鱼和我的两只手。这手一定会复原的。真可耻,它竟会抽筋。鱼又慢下来了,正用它惯常的速度游着。
  弄不懂它为什么跳出水来,老人想。简直象是为了让我看看它个儿有多大才跳的。反正我现在是知道了,他想。但愿我也能让它看看我是个什么样的人。不过这一来它会看到这只抽筋的手了。让它以为我是个比现在的我更富有男子汉气概的人,我就能做到这一点。但愿我就是这条鱼,他想,使出它所有的力量,而要对付的仅仅是我的意志和我的智慧。
  他舒舒服服地靠在木船舷上,忍受着袭来的痛楚感,那鱼稳定地游着,小船穿过深色的海水缓缓前进。随着东方吹来的风,海上起了小浪,到中午时分,老人那抽筋的左手复原了。
  "这对你是坏消息,鱼啊,"他说,把钓索从披在他肩上的麻袋上挪了一下位置。
  他感到舒服,但也很痛苦,然而他根本不承认是痛苦。
  "我并不虔诚,"他说。"但是我愿意念十遍《天主经》和十遍《圣母经》,使我能逮住这条鱼,我还许下心愿,如果逮住了它,一定去朝拜科布莱的圣母。这是我许下的心愿。"
  他机械地念起祈祷文来。有些时候他太倦了,竟背不出祈祷文,他就念得特别快,使字句能顺口念出来。《圣母经》要比《天主经》容易念,他想。
  "万福玛利亚,满被圣宠者,主与尔偕焉。女中尔为赞美,尔胎子耶稣,并为赞美。天主圣母玛利亚,为我等罪人,今祈天主,及我等死候。阿们。"然后他加上了两句:"万福童贞圣母,请您祈祷叫这鱼死去。虽然它是那么了不起。"
  念完了祈祷文,他觉得舒坦多了,但依旧象刚才一样地痛,也许更厉害一点儿,于是他背靠在船头的木舷上,机械地活动起左手的手指。
  此刻阳光很热了,尽管微风正在柔和地吹起。
  "我还是把挑出在船梢的细钓丝重新装上钓饵的好,"他说。"如果那鱼打算在这里再过上一夜,我就需要再吃点东西,再说,水瓶里的水也不多了。我看这儿除了鲯鳅,也逮不到什么别的东西。但是,如果趁它新鲜的时候吃,味道不会差。我希望今夜有条飞鱼跳到船上来。可惜我没有灯光来引诱它。飞鱼生吃味道是呱呱叫的,而且不用把它切成小块。我眼下必须保存所有的精力。天啊,我当初不知道这鱼竟这么大。"
  "可是我要把它宰了,"他说。"不管它多么了不起,多么神气。"
  然而这是不公平的,他想。不过我要让它知道人有多少能耐,人能忍受多少磨难。
  "我跟那孩子说过来着,我是个不同寻常的老头儿,"他说。"现在是证实这话的时候了。"
  他已经证实过上千回了,这算不上什么。眼下他正要再证实一回。每一回都是重新开始,他这样做的时候,从来不去想过去。
  但愿它睡去,这样我也能睡去,梦见狮子,他想。为什么如今梦中主要只剩下了狮子?别想了,老头儿,他对自己说。眼下且轻轻地靠着木船舷歇息,什么都不要想。它正忙碌着。你越少忙碌越好。
  时间已是下午,船依旧缓慢而稳定地移动着。不过这时东风给船增加了一份阻力,老人随着不大的海浪缓缓漂流,钓索勒在他背上的感觉变得舒适而温和些了。
  下午有一回,钓索又升上来了。可是那鱼不过是在稍微高一点的平面上继续游着。太阳晒在老人的左胳臂和左肩和背脊上。所以他知道这鱼转向东北方了。
  既然这鱼他看见过一回,他就能想象它在水里游的样子,它那翅膀般的胸鳍大张着,直竖的大尾巴划破黝黑的海水。不知道它在那样深的海里能看见多少东西,老人想。它的眼睛真大,马的眼睛要小得多,但在黑暗里看得见东西。从前我在黑暗里能看得很清楚。可不是在乌漆麻黑的地方。不过简直能象猫一样看东西。
  阳光和他手指不断的活动,使他那抽筋的左手这时完全复原了,他就着手让它多负担一点拉力,并且耸耸背上的肌肉,使钓索挪开一点儿,把痛处换个地方。
  "你要是没累乏的话,鱼啊,"他说出声来,"那你真是不可思议啦。"
  他这时感到非常疲乏,他知道夜色就要降临,所以竭力想些别的事儿。他想到棒球的两大联赛,就是他用西班牙语所说的GranLigas ,他知道纽约市的扬基队正在迎战底特律的老虎队。
  这是联赛的第二天,可我不知道比赛的结果如何。但是我一定要有信心,一定要对得起那了不起的迪马吉奥,他即使脚后跟长了骨刺,在疼痛,也能把一切做得十全十美①。骨刺是什么玩意儿?他问自己。西班牙语叫做unespuela - dehueso 。我们没有这玩意儿。它痛起来跟斗鸡脚上装的距铁刺扎进人的脚后跟时一样厉害吗?我想我是忍受不了这种痛苦的,也不能象斗鸡那样,一只眼睛或两只被啄瞎后仍旧战斗下去。人跟伟大的鸟兽相比,真算不上什么。我还是情愿做那只待在黑暗的深水里的动物。①迪马吉奥脚踵上的骨刺在年通过手术割去,但后来有时仍有疼痛的感觉。
  "除非有鲨鱼来,"他说出声来。"如果有鲨鱼来,愿天主怜悯它和我吧。"
  你以为那了不起的迪马吉奥能守着一条鱼,象我守着这一条一样长久吗?他想。我相信他能,而且更长久,因为他年轻力壮。加上他父亲当过渔夫。不过骨刺会不会使他痛得太厉害?
  "我说不上来,"他说出声来。"我从来没有长过骨刺。"
  太阳落下去的时候,为了给自己增强信心,他回想起那回在卡萨布兰卡的一家酒店里,跟那个码头上力气最大的人,从西恩富戈斯①来的大个子黑人比手劲的光景。整整一天一夜,他们把手拐儿搁在桌面一道粉笔线上,胳膊朝上伸直,两只手紧握着。双方都竭力将对方的手使劲朝下压到桌面上。好多人在赌谁胜谁负,人们在室内的煤油灯下走出走进,他打量着黑人的胳膊和手,还有这黑人的脸。最初的八小时过后,他们每四小时换一个裁判员,好让裁判员轮流睡觉。他和黑人手上的指甲缝里都渗出血来,他们俩正视着彼此的眼睛,望着手和胳膊,打赌的人在屋里走出走进,坐在靠墙的高椅子上旁观。四壁漆着明亮的蓝色,是木制的板壁,几盏灯把他们的影子投射在墙上。黑人的影子非常大,随着微风吹动挂灯,这影子也在墙上移动着。①位于哈瓦那东南,是古巴中部滨加勒比海的一良港。
发表于 2006-8-29 17:35:13 | 显示全部楼层
疯掉了
发表于 2006-8-29 17:35:14 | 显示全部楼层
可以疯狂乐~!
发表于 2006-8-29 17:35:28 | 显示全部楼层


快开学拉,也向大家告个别~~珍重!




在学校的时候想回家,在家的时候想回学校,心情总是矛盾的,但是眼看新学期就要开始了,令人兴奋又憧憬,美好的学涯生活又要开始拉,我在这提醒下开学的朋友们,好好学习啊,切勿贪玩拉,大家新学期开学用的东西准备好了吗?切勿忘带需要带的东西啊!让我们共同迎来新一学期的校园生活,让快乐伴学习左右!!!呵呵!


嘿嘿,眼看就要开学拉,开学以后我就是高二的学生了,以后可能来的少,请大家谅解啊,我会想你们的,希望你们多多想我哈,我爱你们,提前告个别,预祝大家身体健康万事如意!祝跟我一样上学的哥哥姐姐弟弟妹妹们,学业有成,心想事成!
发表于 2006-8-29 17:35:34 | 显示全部楼层
灌水预防机制已经被砸掉,在15秒内能发贴
 楼主| 发表于 2006-8-29 17:35:49 | 显示全部楼层
不要老发这些复制来的文章.这么长,往下拉都得拉半天.
发表于 2006-8-29 17:36:00 | 显示全部楼层
啥啊???
发表于 2006-8-29 17:36:05 | 显示全部楼层
灌水预防机制已经被破坏,在15秒内能发贴
发表于 2006-8-29 17:36:10 | 显示全部楼层
还是灌点短的吧~
发表于 2006-8-29 17:36:18 | 显示全部楼层
对呀真是
发表于 2006-8-29 17:36:42 | 显示全部楼层
太长的浪费EM空间
发表于 2006-8-29 17:37:08 | 显示全部楼层
10000
发表于 2006-8-29 17:37:11 | 显示全部楼层
TONGYI
发表于 2006-8-29 17:37:12 | 显示全部楼层
4900!!
发表于 2006-8-29 17:37:26 | 显示全部楼层
单位同事老王虽年近40,却童心未泯,买了部新手机,还将所有储存的电话号码都设置了不同的个性铃声。这样一来,每个人给老王打电话,手机都会发出不同的带和弦的铃声。

  周末,我和老王及其他两位同事一块儿去公司附近的酒家聚餐。菜还没上,老王的手机便响起了一段欢快的小夜曲。老王冲我们点了点头,说:“是朋友的。”便接了。


  菜上齐了,我们几个有说有笑地吃了起来。老王的手机又响了,这回却是节奏紧张的《义勇军进行曲》:“起来,不愿做奴隶的人们……”有个朋友悟性较高,立即笑着说:“老王,是你老婆的电话吧?快接吧,不接那才是最危险的时候到了。”老王有点不好意思地笑了笑,算是默认了。

  我们边吃边聊,谈起了单位上的事情,大家都对公司人事部胡主任的任人唯亲表示了不满。尤其是老王,一谈起他来,便不住地摇头。大家正聊到兴头上,老王的电话又响了。这回的铃声竟是一个脆生生的童声: “爸爸,接电话。爸爸,快接我的电话!”我们都忍不住笑了起来,不用问,一定是老王儿子打来的了。

  谁知老王接了电话,干咳了一下,小声地说了句: “胡主任,你好……”
发表于 2006-8-29 17:37:27 | 显示全部楼层
刚才有个BUG,是论坛上的,我以为无声的风抢到了这个楼呢-_-|||
发表于 2006-8-29 17:37:30 | 显示全部楼层
灌水预防机制已经被恢复,在15秒内能发贴
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-7-15 01:14 , Processed in 0.022270 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表