0%

C语言参考手册第五版PDF下载

《C语言参考手册第五版》

链接: https://pan.baidu.com/s/1uBQRP1LZmQnlZVNpSat1tg 提取码: x3ns

《C语言参考手册(原书第5版)》是C语言的详尽参考手册,分为两部分:第一部分讨论了C语言的所有语言特征,包括词法、预处理机制、声明、类型、表达式、语句以及函数等基本语言特征;第二部分讨论了C语言的标准库,针对它们不同的功能分别进行详细介绍。为了帮助读者理解相关概念,《C语言参考手册(原书第5版)》在讨论C语言及其标准库的细节时,提供了许多实例和解释。第一部分的各章还提供了练习题和主要练习的解答,这些练习可帮助读者加深理解C语言的基本功能和特性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007

《C语言参考手册(原书第5版)》

译者序

前 言

第一部分 C语言

第1章 概述 2

1.1 C语言的演变 2

1.1.1 传统C 2

1.1.2 标准C(1989) 2

1.1.3 标准C(1995) 3

1.1.4 标准C(1999) 3

1.1.5 标准C++ 4

1.1.6 《C语言参考手册(原书第5版)》内容 4

1.2 应该使用哪种C语言 4

1.3 C编程概述 5

1.4 一致性 6

1.5 语法约定 7

第2章 词法元素 8

2.1 字符集 8

2.1.1 执行字符集 9

2.1.2 空白字符和行终止符 9

2.1.3 字符编码 10

2.1.4 三字符组 10

2.1.5 多字节字符和宽字符 11

2.2 注释 13

2.3 标记 14

2.4 操作符和分隔符 15

2.5 标识符 15

2.6 关键字 17

2.7 常量 18

2.7.1 整数常量 18

2.7.2 浮点数常量 22

2.7.3 字符常量 23

2.7.4 字符串常量 25

2.7.5 转义字符 27

2.7.6 字符转义码 28

2.7.7 数值转义码 29

2.8 C++兼容性 29

2.8.1 字符集 30

2.8.2 注释 30

2.8.3 操作符 30

2.8.4 标识符和关键字 30

2.8.5 字符常量 30

2.9 关于字符集、指令集和编码 30

2.10 练习 32

第3章 C预处理器 34

3.1 预处理器命令 34

3.2 预处理器词法约定 35

3.3 定义和替换 36

3.3.1 类似对象的宏定义 36

3.3.2 定义带参数的宏 37

3.3.3 宏表达式的重新扫描 39

3.3.4 预定义的宏 40

3.3.5 取消宏定义和重新定义宏 42

3.3.6 宏展开的优先级错误 42

3.3.7 宏参数的副作用 43

3.3.8 把标记转换为字符串 43

3.3.9 宏展开中的标记合并 44

3.3.10 宏的可变参数列表 45

3.3.11 其他问题 46

3.4 文件包含 46

3.5 条件编译 48

3.5.1 #if、#else和#endif命令 48

3.5.2 #elif命令 49

3.5.3 #ifdef和#ifndef命令 50

3.5.4 条件命令中的常量表达式 51

3.5.5 defined操作符 52

3.6 显式的行号 52

3.7 pragma指令 53

3.7.1 标准pragma命令 53

3.7.2 标准pragma指令的位置 54

3.7.3 _Pragma操作符 54

3.8 错误指令 54

3.9 C++兼容性 55

3.10 练习 55

第4章 声明 57

4.1 声明的组织形式 57

4.2 术语 58

4.2.1 作用域 58

4.2.2 可见性 59

4.2.3 前向引用 59

4.2.4 名称的重载 60

4.2.5 重复声明 61

4.2.6 重复可见性 62

4.2.7 范围 62

4.2.8 初始值 63

4.2.9 外部名称 64

4.2.10 编译时名称 65

4.3 存储类别和函数指定符 65

4.3.1 默认存储类别指定符 66

4.3.2 存储类别指定符的例子 66

4.3.3 函数指定符 67

4.4 类型指定符和限定符 67

4.4.1 默认类型指定符 68

4.4.2 缺失的声明器 69

4.4.3 类型限定符 70

4.4.4 const 70

4.4.5 volatile和序列点 72

4.4.6 restrict 74

4.5 声明器 75

4.5.1 简单声明器 75

4.5.2 指针声明器 76

4.5.3 数组声明器 77

4.5.4 函数声明器 78

4.5.5 声明器的组合 80

4.6 初始化值 81

4.6.1 整数 82

4.6.2 浮点数 83

4.6.3 指针 83

4.6.4 数组 84

4.6.5 枚举 86

4.6.6 结构 86

4.6.7 联合 87

4.6.8 省略花括号 88

4.6.9 指定成员的初始化值 88

4.7 隐式声明 89

4.8 外部名称 90

4.8.1 初始化值模型 90

4.8.2 省略的存储类别模型 90

4.8.3 公共模型 90

4.8.4 混合公共模型 91

4.8.5 总结和建议 91

4.8.6 未引用的外部声明 92

4.9 C++兼容性 92

4.9.1 作用域 92

4.9.2 标签和typedef名称 92

4.9.3 用于类型的存储类别指定符 93

4.9.4 const类型限定符 93

4.9.5 初始化值 93

4.9.6 隐式声明 93

4.9.7 定义和引用声明 94

4.9.8 函数链接 94

4.9.9 无参函数 94

4.10 练习 94

第5章 类型 97

5.1 整数类型 98

5.1.1 有符号整数类型 98

5.1.2 无符号整数类型 101

5.1.3 字符类型 102

5.1.4 扩展整数类型 104

5.1.5 布尔类型 104

5.2 浮点类型 104

5.3 指针类型 108

5.3.1 通用指针 109

5.3.2 null指针和非法指针 109

5.3.3 使用指针的一些警告 110

5.4 数组类型 111

5.4.1 数组和指针 111

5.4.2 多维数组 112

5.4.3 数组边界 112

5.4.4 操作 113

5.4.5 可变长度的数组 113

5.5 枚举类型 115

5.6 结构类型 117

5.6.1 结构类型引用 119

5.6.2 结构上的操作 120

5.6.3 成员 120

5.6.4 结构成员的布局 122

5.6.5 位段 122

5.6.6 移植性问题 124

5.6.7 结构的大小 125

5.6.8 灵活数组成员 126

5.7 联合类型 127

5.7.1 联合成员的布局 127

5.7.2 联合的大小 128

5.7.3 使用联合类型 129

5.7.4 (其他)使用联合类型 130

5.8 函数类型 131

5.9 void类型 133

5.10 typedef名称 133

5.10.1 用于函数类型的typedef名称 135

5.10.2 重定义typedef名称 135

5.10.3 编译器的说明 136

5.11 类型兼容性 136

5.11.1 等价的类型 136

5.11.2 枚举兼容性 137

5.11.3 数组兼容性 138

5.11.4 函数兼容性 138

5.11.5 结构和联合兼容性 139

5.11.6 指针兼容性 139

5.11.7 源文件之间的兼容性 139

5.12 类型名称和抽象声明器 139

5.13 C++兼容性 141

5.13.1 枚举类型 141

5.13.2 typedef名称 141

5.13.3 类型兼容性 141

5.14 练习 141

第6章 转换和表示形式 144

6.1 表示形式 144

6.1.1 存储单位和数据长度 144

6.1.2 字节顺序 145

6.1.3 对齐限制 146

6.1.4 指针的长度 147

6.1.5 地址模型的效果 147

6.1.6 类型表示形式 149

6.2 转换 150

6.2.1 表示形式的变化 150

6.2.2 细微的转换 150

6.2.3 转换为整数类型 150

6.2.4 转换为浮点类型 152

6.2.5 转换为结构和联合类型 152

6.2.6 转换为枚举类型 152

6.2.7 转换为指针类型 152

6.2.8 转换为数组和函数类型 153

6.2.9 转换为void类型 153

6.3 寻常转换 154

6.3.1 类型转换 154

6.3.2 赋值转换 154

6.3.3 寻常单目转换 155

6.3.4 寻常双目转换 157

6.3.5 默认的函数实参转换 158

6.3.6 其他函数转换 159

6.4 C++兼容性 159

6.5 练习 159

第7章 表达式 161

7.1 对象、左值和指示符 161

7.2 表达式和优先级 162

7.2.1 操作符的优先级和结合性 162

7.2.2 溢出和其他算术异常 163

7.3 基本表达式 164

7.3.1 名称 164

7.3.2 字面值 165

7.3.3 带括号的表达式 165

7.4 后缀表达式 166

7.4.1 下标表达式 166

7.4.2 成员选择 168

7.4.3 函数调用 169

7.4.4 后缀增值和减值操作符 171

7.4.5 复合字面值 172

7.5 单目表达式 173

7.5.1 类型转换 174

7.5.2 sizeof操作符 174

7.5.3 单目负号和正号 176

7.5.4 逻辑反 176

7.5.5 位反 177

7.5.6 取地址操作符 177

7.5.7 间接访问 178

7.5.8 前缀增值和减值操作符 179

7.6 双目操作符表达式 180

7.6.1 乘除操作符 180

7.6.2 加减操作符 182

7.6.3 移位操作符 183

7.6.4 关系操作符 185

7.6.5 相等操作符 186

7.6.6 位操作符 188

7.6.7 整数集合的例子 189

7.7 逻辑操作符表达式 192

7.8 条件表达式 194

7.9 赋值表达式 195

7.9.1 简单赋值 196

7.9.2 复合赋值 197

7.10 线性表达式 197

7.11 常量表达式 198

7.11.1 预处理器常量表达式 199

7.11.2 整型常量表达式 200

7.11.3 初始化值常量表达式 200

7.12 求值的顺序 201

7.13 被丢弃的值 202

7.14 内存访问的优化 203

7.15 C++兼容性 204

7.16 练习 204

第8章 语句 206

8.1 语句的基本语法规则 206

8.2 表达式语句 207

8.3 标签语句 207

8.4 复合语句 208

8.5 条件语句 210

8.5.1 多路条件语句 210

8.5.2 悬疑的else问题 211

8.6 迭代式语句 212

8.6.1 while语句 212

8.6.2 do语句 213

8.6.3 for语句 214

8.6.4 使用for语句 215

8.6.5 多个控制变量 217

8.7 switch语句 218

8.8 break和continue语句 220

8.9 return语句 222

8.10 goto语句 223

8.11 空语句 224

8.12 C++兼容性 224

8.12.1 复合语句 224

8.12.2 循环中的声明 224

8.13 练习 225

第9章 函数 226

9.1 函数定义 226

9.2 函数原型 228

9.2.1 原型出现在什么时候 230

9.2.2 混合使用原型和非原型声明 230

9.2.3 合理地使用原型 231

9.2.4 原型和调用约定 231

9.2.5 标准C和传统C的兼容性 233

9.3 形式参数声明 233

9.4 形参类型的调整 235

9.5 参数传递约定 236

9.6 形参的一致 237

9.7 函数的返回类型 238

9.8 返回类型的一致 239

9.9 main函数 239

9.10 内联函数 240

9.11 C++兼容性 242

9.11.1 原型 242

9.11.2 形参和返回类型中的类型声明 242

9.11.3 返回类型的一致 242

9.11.4 main 242

9.11.5 内联 243

9.12 练习 243

第二部分 C函数库

第10章 函数库简介 246

10.1 标准C工具 246

10.2 C++兼容性 247

10.3 库头文件和名称 249

10.3.1 assert.h 249

10.3.2 complex.h 249

10.3.3 ctype.h 249

10.3.4 errno.h 249

10.3.5 fenv.h 249

10.3.6 float.h 250

10.3.7 inttypes.h 250

10.3.8 iso64.h 250

10.3.9 limits.h 250

10.3.10 locale.h 250

10.3.11 math.h 251

10.3.12 setjmp.h 252

10.3.13 signal.h 252

10.3.14 stdarg.h 252

10.3.15 stdbool.h 252

10.3.16 stddef.h 252

10.3.17 stdint.h 252

10.3.18 stdio.h 252

10.3.19 stdlib.h 253

10.3.20 string.h 253

10.3.21 tgmath.h 253

10.3.22 time.h 254

10.3.23 wchar.h 254

10.3.24 wctype.h 254

第11章 标准语言附加 255

11.1 NULL、ptrdiff_t、size_t、offsetof 255

11.2 EDOM、ERANGE、EILSEQ、errno、

strerror、perror 256

11.3 bool、false、true 257

11.4 va_list、va_start、va_arg、va_end 258

11.5 标准C的操作符宏 261

第12章 字符处理 262

12.1 isalnum、isalpha、iscntrl、iswalnum、iswalpha、iswcntrl 262

12.2 iscsym、iscsymf 264

12.3 isdigit、isodigit、isxdigit、iswdigit、iswxdigit 264

12.4 isgraph、isprint、ispunct、iswgraph、iswprint、iswpunct 265

12.5 islower、isupper、iswlower、iswupper 266

12.6 isblank、isspace、iswhite、iswspace 266

12.7 toascii 267

12.8 toint 267

12.9 tolower、toupper、towlower、

towupper 267

12.10 wctype_t、wctype、iswctype 268

12.11 wctrans_t、wctrans 269

第13章 字符串处理 270

13.1 strcat、strncat、wcscat、wcsncat 270

13.2 strcmp、strncmp、wcscmp、wcsncmp 271

13.3 strcpy、strncpy、wcscpy、cscncpy 272

13.4 strlen、wcslen 273

13.5 strchr、strrchr、wcschr、wcsrchr 273

13.6 strspn、strcspn、strpbrk、strrpbrk、

wcsspn、wcscspn、wcspbrk 274

13.7 strstr、strtok、wcsstr、wcstok 275

13.8 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull 276

13.9 atof、atoi、atol、atoll 277

13.10 strcoll、strxfrm、wcscoll、wcsxfrm 277

第14章 内存函数 279

14.1 memchr、wmemchr 279

14.2 memcmp、wmemcmp 279

14.3 memcpy、memccpy、memmove、wmemcpy、wmemmove 280

14.4 memset、wmemset 281

第15章 输入/输出工具 282

15.1 FILE、EOF、wchar_t、WEOF 283

15.2 fopen、fclose、fflush、freopen、

fwide 284

15.2.1 文件模式 285

15.2.2 文件的定向 286

15.3 setbuf、setvbuf 287

15.4 stdin、stdout、stderr 287

15.5 fseek、ftell、rewind、fgetpos、

fsetpos 288

15.5.1 fseek和ftell 287

15.5.2 fgetpos和fsetpos 290

15.6 fgetc、fgetwc、getc、getwc、getchar、getwchar、ungetc、ungetwc 290

15.7 fgets、fgetws、gets 291

15.8 fscanf、fwscanf、scanf、wscanf、

sscanf、swscanf 292

15.8.1 控制字符串 293

15.8.2 转换规范 293

15.9 fputc、fputwc、putc、putwc、putchar、putwchar 298

15.10 fputs、fputws、puts 299

15.11 fprintf、printf、sprintf、snprintf、fwprintf、wprintf、swprintf 299

15.11.1 输出格式 300

15.11.2 转换规范 301

15.11.3 转换标志 301

15.11.4 最小字段宽度 302

15.11.5 精度 303

15.11.6 长度规范 303

15.11.7 转换操作 304

15.12 v[x]printf、v[x]scanf 311

15.13 fread、fwrite 312

15.14 feof、ferror、clearerr 313

15.15 remove、rename 314

15.16 tmpfile、tmpnam、mktemp 314

第16章 基本工具 316

16.1 malloc、calloc、mlalloc、clalloc、free、cfree 316

16.2 rand、srand、RAND_MAX 318

16.3 atof、atoi、atol、atoll 319

16.4 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull 319

16.5 abort、atexit、exit、_Exit、EXIT_FAILURE、EXIT_SUCCESS 321

16.6 getenv 322

16.7 system 323

16.8 bsearch、qsort 323

16.9 abs、labs、llabs、div、ldiv、lldiv 325

16.10 mblen、mbtowc、wctomb 326

16.10.1 编码和转换状态 327

16.10.2 长度函数 327

16.10.3 转换为宽字符 327

16.10.4 宽字符转换为多字节字符 328

16.11 mbstowcs、wcstombs 328

16.11.1 转换为宽字符串 328

16.11.2 从宽字符串转换为多字节字符 329

第17章 数学函数 331

17.1 abs、lbas、llabs、div、ldiv、lldiv 331

17.2 fabs 332

17.3 ceil、floor、lrint、llrint、lround、llround、nearbyint、round、rint、trunc 332

17.4 fmod、remainder、remquo 333

17.5 frexp、ldexp、modf、scalbn 334

17.6 exp、exp2、expm1、ilogb、log、log10、log1p、log2、logb 334

17.7 cbrt、fma、hypot、pow、sqrt 335

17.8 rand、srand、RAND_MAX 336

17.9 cos、sin、tan、cosh、sinh、tanh 336

17.10 acos、asin、atan、atan2、acosh、

asinh、atanh 337

17.11 fdim、fmax、fmin 338

17.12 类型通用的宏 338

17.13 erf、erfc、lgamma、tgamma 341

17.14 fpclassify、isfinite、isinf、isnan、isnormal、signbit 342

17.15 copysign、nan、nextafter、

nexttoward 343

17.16 isgreater、isgreaterequal、isless、

islessequal、islessgreater、isunordered 343

第18章 时间和日期函数 345

18.1 clock、clock_t、CLOCKS_PER_SEC、times 345

18.2 time、time_t 346

18.3 asctime、ctime 346

18.4 gmtime、localtime、mktime 347

18.5 difftime 348

18.6 strtime、wcsftime 349

第19章 控制函数 352

19.1 assert、NDEBUG 352

19.2 system、exec 352

19.3 exit、abort 353

19.4 setjmp、longjmp、jmp_buf 353

19.5 atexit 354

19.6 signal、raise、gsignal、ssignal、

psignal 354

19.7 sleep、alarm 356

第20章 区域 357

20.1 setlocale 357

20.2 localeconv 358

第21章 扩展整数类型 361

21.1 基本规则 361

21.1.1 类型的种类 361

21.1.2 要么都定义,要么都不定义 361

21.1.3 MIN和MAX限制 361

21.1.4 PRI...和SCN...格式字符串宏 362

21.2 固定长度的整数类型 363

21.3 具有最小宽度的最小长度类型 364

21.4 具有最小宽度的快速类型 364

21.5 指针长度和zuida长度整数类型 365

21.6 ptrdiff_t、size_t、wchar_t、wint_t和sig_atomic_t的范围 366

21.7 imaxabs、imaxdiv、imaxdiv_t 366

21.8 strtoimax、strtouimax 367

21.9 wcstoimax、wcstoumax 367

第22章 浮点环境 368

22.1 介绍 368

22.2 浮点环境 369

22.3 浮点异常 369

22.4 浮点四舍五入模式 370

22.5 浮点表达式收缩 371

第23章 复数运算 372

23.1 复数函数库约定 372

23.2 complex、_Complex_I、imaginary、_Imaginary_I、I 372

23.3 CX_LIMITED_RANGE 372

23.4 cacos、casin、catan、ccos、csin、

ctan 373

23.5 cacosh、casinh、catanh、ccosh、csinh、ctanh 374

23.6 cexp、clog、cabs、cpow、csqrt 374

23.7 carg、cimag、creal、conj、cproj 375

第24章 宽字符和多字节字符工具 377

24.1 基本类型和宏 377

24.2 宽字符和多字节字符之间的转换 377

24.3 宽字符串和多字节字符串之间的转换 379

24.4 转换为算术类型 380

24.5 输入和输出函数 380

24.6 字符串函数 381

24.7 日期和时间转换 382

24.8 宽字符分类和映射函数 382

附录A ASCII字符集 383

附录B 语法 384

附录C 练习答案 396


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------