�x���¹�������ֱ�ӳ���
�gӭ���R�ЈD�W(w��ng) Ո(q��ng) | ע��(c��)

���] ����֪����495��(g��)C�Z�Ԇ��}

�����磺�����]늳���������r(sh��)�g��2023-06-01
�_���� 16�_ 퓔�(sh��)�� 262
�� �D �r(ji��):¥63.9(7.1��) ���r(ji��)  ¥89.8 ��䛺�ɿ�����(hu��)�T�r(ji��)
����ُ��܇ �ղ�
�_������ ȫ�����]
?�½������س���
������Ǖ�����>

����֪����495��(g��)C�Z�Ԇ��} ���(qu��n)��Ϣ

����֪����495��(g��)C�Z�Ԇ��} ������ɫ

1.ȫ��C�Z�Գ���T���w�ǻ۵ĽY(ji��)�����Ԇ�����ʽ���400����(g��)��ҊC�Z�Ԇ��}��ᘌ�(du��)��ʼ������(sh��)�M��ָᘡ��ַ����ȸ���(g��)�������}�M(j��n)���U�������Y(ji��)���S���Ĵ��aʾ�����f���P(gu��n)�I�c(di��n)��

2.Amazonȫ���Ǻ��u(p��ng)�D������(sh��)���ԏ�(qi��ng)�������׶����ṩ���w495��(g��)���}��������ʹ���x�߿��Ը����׵ز�����Ҫ����Ϣ��

3.����Steve Summit 15��C���̽�(j��ng)�(y��n)��Ҋ�⣬�������׶��ķ�ʽ�ʬF(xi��n)��������ҕ���`���΢����ֲ�Ԇ��}�����_���Z��ʹ�ú�ϵ�y(t��ng)�ض��Ć��}��

4.��(n��i)��ϵ�y(t��ng)�����wC�Z�Եķ����������Ԍ�(sh��)�������w�ķ�ʽ�v��C�Z����������C����Tͨ�^���õ������Z�Ե�Ҫ�c(di��n)�ͼ��Ɂ���߳����O(sh��)Ӌ(j��)ˮƽ��

����֪����495��(g��)C�Z�Ԇ��} ��(n��i)�ݺ���

������֪����495��(g��)C�Z�Ԇ��}���Ԇ������ʽ�M����(n��i)����ӑՓ�ˌW(xu��)��(x��)��ʹ��C�Z�Ե��^���н�(j��ng)��������һЩ���}�������г���C�Ñ���(j��ng)������400����(g��)���}�����w�˳�ʼ������(sh��)�M��ָᘡ��ַ�������(n��i)����䡢�캯��(sh��)��C�A(y��)̎�����ȸ���(g��)��������}�����քe�o���˽�𣬶��ҽY(ji��)�ϴ��aʾ���U��Ҫ�c(di��n)�� ������֪����495��(g��)C�Z�Ԇ��}���Y(ji��)��(g��u)�������v��͸�أ��Ǹ���У���P(gu��n)���I(y��)C�Z���n�̺ܺõĽ̌W(xu��)��������Ҳ�Ǹ��Ӵ�C����T�Č�(sh��)�`ָ����

����֪����495��(g��)C�Z�Ԇ��} Ŀ�

�� 1�¡�•���ͳ�ʼ����1



������͡�1

1.1����ԓ��ΛQ��ʹ���ķN����(sh��)�������1��

1.2����ʲô���� �_���x��(bi��o)��(zh��n)��͵Ĵ�������2

1.3����?y��n)�C�Z�ԛ]�о� �_���x��͵Ĵ�С��������һ�㶼��typedef���xint16��int32��Ȼ�����(j��)��(sh��)�H�ęC(j��)���h(hu��n)�����������x��int��short��long��������@�ӿ��������еĆ��}����Q�����dž᣿��2��

1.4���µ�64λ�C(j��)�ϵ�64λ�����ʲô�ӵ�����3



ָ�•����3

1.5���@�ӵ�•����ʲô���}��char *p1, p2; ����ʹ��p2�ĕr(sh��)���(b��o)�e(cu��)�ˡ���3

1.6������•��һ��(g��)ָ�������������һЩ���g�����s�������@�ӵĴ��a��ʲô���}��char *p; *p=malloc(10);��4



•���L(f��ng)��4

1.7������•���Ͷ��xȫ��׃���ͺ���(sh��)**������4

1.8�������C�Ќ�(sh��)�F(xi��n)��͸��(����)��(sh��)��(j��)�������5

1.9���������“��ȫ��׃��”�������ǷNֻ�ܱ�����Դ�ļ��еIJ��ֺ���(sh��)�L����׃������5



�惦(ch��)��͡�6

1.10��ͬһ��(g��)�o�B(t��i)(static)����(sh��)��׃��������•������횰���static�惦(ch��)��͆�����6

1.11��extern�ں���(sh��)•������ʲô��˼����6

1.12���P(gu��n)�I��auto������ʲô��;����7



��Ͷ��x(typedef)��7

1.13����(du��)���Ñ����x��ͣ�typedef ��#define��ʲô�^(q��)�e����7

1.14�����ƺ����ܳɹ����xһ��(g��)朱�����ԇ�^typedef struct{char *item; NODEPTR next;}* NODEPTR; ���Ǿ��g����(b��o)���e(cu��)�`��Ϣ���y����C�Z���нY(ji��)��(g��u)���ܰ���ָ���Լ���ָᘆ᣿��7��

1.15����ζ��xһ��(du��)�໥���õĽY(ji��)��(g��u)����9

1.16��Struct{��} x1;��typedef struct{��} x2; �@�ɂ�(g��)•����ʲô�^(q��)�e����10

1.17��“typedef int(*funcptr)();”��ʲô��˼����10



const �޶��~��10

1.18�������@��һ�M•����typedef char *charp; const charp p; ��ʲô��p��������ָ����ַ���const ��10

1.19����ʲô�����������@���ڳ�ʼʽ�͔�(sh��)�M�S��ֵ��ʹ��constֵ��const int n=5; int a[n];��10

1.20��const char *p��char const *p��char *const p��ʲô�^(q��)�e����10



��(f��)�s��•���� 11

1.21�����ӽ���������dz���(f��)�s��•�������綨�xһ��(g��)����N��(g��)ָ�򷵻�ָ���ַ���ָᘵĺ���(sh��)��ָᘵĔ�(sh��)�M����11��

1.22�����•������ָ��ͬ��ͺ���(sh��)��ָᘵĺ���(sh��) �����O(sh��)Ӌ(j��)һ��(g��)��B(t��i)�C(j��)���ú���(sh��)��ʾÿ�N��B(t��i)��ÿ��(g��)����(sh��)����(hu��)����һ��(g��)ָ����һ��(g��)��B(t��i)�ĺ���(sh��)��ָ��������Ҳ����κη�����•���@�ӵĺ���(sh��)——���X����Ҫһ��(g��)����ָᘵĺ���(sh��)�����ص�ָ�ָ������Ƿ���ָᘵĺ���(sh��)……���������(f��)���Ե��o�F����12��



��(sh��)�M����13

1.23���ܷ�•���͂��딵(sh��)�M��Сһ�µľֲ���(sh��)�M����������������(sh��)ָ����С�ą���(sh��)��(sh��)�M����13

1.24������һ��(g��)�ļ��ж��x��һ��(g��)extern��(sh��)�M��Ȼ������һ��(g��)�ļ���ʹ�ã���ʲôsizeofȡ������(sh��)�M�Ĵ�������13



•�����}��14

1.25������(sh��)ֻ���x��һ�����{(di��o)����һ���������g����ʾ�Ƿ���•��������14

*1.26��main�����_���x��ʲô��void main���_������15

1.27���ҵľ��g�����ڈ�(b��o)����(sh��)ԭ�Ͳ�ƥ����e(cu��)�`�������X�Û]ʲô���}���@�Ǟ�ʲô����15

1.28���ļ��еĵ� һ��(g��)•���͈�(b��o)����ֵ��Z���e(cu��)�`�����ҿ��]ʲô���}���@�Ǟ�ʲô����15

1.29����ʲô�ҵľ��g�������S�Ҷ��x��(sh��)�M����double array[256][256] ��15



�������g��15

1.30 ����Д���Щ��(bi��o)�R(sh��)������ʹ�ã���Щ������������15



��ʼ����18

1.31����(du��)�ڛ]���@ʽ��ʼ����׃���ij�ʼֵ���������ӵļٶ������һ��(g��)ȫ��׃����ʼֵ��“��”�����ɷ������ָᘻ��c(di��n)������18��

1.32������Ĵ��a��ʲô���ܾ��g intf(){char a[]="Hello, world!";}��18

*1.33������ij�ʼ����ʲô���}�����g����ʾ“invalid initializers ”��������Ϣ��char *p=malloc(10);��19

1.34��char a[]= "string literal";��char *p="string literal"; ��ʼ����ʲô�^(q��)�e����(d��ng)����p[i] �xֵ�ĕr(sh��)�����ҵij������������19��

1.35��char a{[3]}= "abc"; �Ƿ�Ϸ�����20

1.36���ҿ���Ū�������(sh��)ָᘵ�•���������������Ӳ��ܳ�ʼ���أ���20

1.37���܉��ʼ��“(li��n)�φ�����20



�� 2�¡��Y(ji��)��(g��u)��“(li��n)�Ϻ�ö�e��21



�Y(ji��)��(g��u)•����21

2.1��struct x1{��};��typedef struct{��}x2; ��ʲô��ͬ����21

2.2���@�ӵĴ��a��ʲô����(du��)��struct x{��}; x thestruct;��22

2.3���Y(ji��)��(g��u)���԰���ָ���Լ���ָᘆ�����22

2.4����C�Z������ʲô������(sh��)�F(xi��n)����(sh��)��(j��)���**�� ��22

*2.5����C�Z�����Ƿ���ģ�M�^�е�����?q��)�������O(sh��)Ӌ(j��)���Եĺ÷�������22

2.6����ʲô•��extern f(struct x *p); �o�҈�(b��o)��һ��(g��)�ޝ��y���ľ�����Ϣ����23

2.7���������@��•���Y(ji��)��(g��u)�Ĵ��a��struct name {int namelen; char namestr[1];};Ȼ����ʹ��һЩ��(n��i)����似��ʹnamestr��(sh��)�M�����������ж���(g��)Ԫ����namelenӛ���Ԫ�؂�(g��)��(sh��)���������ӹ��������@���ǺϷ��ĺͿ���ֲ�Ć�����23��

2.8���� �f�Y(ji��)��(g��u)�����x�o׃��Ҳ���Ԍ�(du��)����(sh��)����͂�������ʲôK&R1�s���_�f�������@��������25

2.9����ʲô�����Ã�(n��i)����==��!=���������^�Y(ji��)��(g��u)���� 26

2.10 �Y(ji��)��(g��u)���f�ͷ�������Ό�(sh��)�F(xi��n)������26

2.11���������ܽY(ji��)��(g��u)����(sh��)�ĺ���(sh��)���볣��ֵ�����ӄ�(chu��ng)���o�������g�ij����Y(ji��)��(g��u)ֵ����26

2.12�����ӏ�/��(sh��)��(j��)�ļ��x/���Y(ji��)��(g��u)����27



�Y(ji��)��(g��u)��䡡27

2.13����ʲô�ҵľ��g���ڽY(ji��)��(g��u)�������˿ն����@��(d��o)�¿��g���M(f��i)���ҟo���c�ⲿ��(sh��)��(j��)�ļ��M(j��n)��“���M(j��n)��”�x�����ܷ��P(gu��n)����������߿��ƽY(ji��)��(g��u)��Č�(du��)�R��ʽ����27��

2.14����ʲôsizeof���ص�ֵ���ڽY(ji��)��(g��u)��С������ֵ���Dz���β������䣿��28

2.15����δ_�����ڽY(ji��)��(g��u)�е��ֹ�(ji��)ƫ��������28

2.16���������\(y��n)�Еr(sh��)�������L���Y(ji��)��(g��u)�е�������29

2.17��C�Z�����к�Pascal��with�ȃr(ji��)���Z������� 29

2.18����Ȼ��(sh��)�M������������(sh��)�M�Ļ���ַ����ʲô��(du��)�Y(ji��)��(g��u)�����@������29

2.19�������\(y��n)�����_�����˳��r(sh��)�s“core dump ”(�����D(zhu��n)��(ch��))������ô��������29



“(li��n)�ϡ�30

2.20���Y(ji��)��(g��u)��“(li��n)����ʲô�^(q��)�e����30

2.21�����k����ʼ��“(li��n)�φ�����30

2.22���Л]��һ�N�Ԅ�(d��ng)��������ۙ“(li��n)�ϵ��Ă�(g��)����ʹ������30



ö�e��31

2.23��ö�e��һ�M�A(y��)̎����#define��ʲô��ͬ���� 31

2.24��ö�e����ֲ������31

2.25����ʲô�@ʾö�eֵ��̖(h��o)�����׷���������31



�31

2.26��һЩ�Y(ji��)��(g��u)•���е��@Щð̖(h��o)�͔�(sh��)����ʲô��˼����31

2.27����ʲô�˂���ôϲ�g���@ʽ���ڴa��λ��������ֱ��•��λ������32



��3�¡����_(d��)ʽ�� 33



��ֵ���33

3.1����ʲô�@�ӵĴ��a������a[i]= i ;��33

3.2��ʹ���ҵľ��g��������Ĵ��aint i= 7; printf("%d\n", i * i ); ��ӡ��49�����ܰ�ʲô���Ӌ(j��)�㣬�y����ԓ��56������33��

3.3����(du��)�ڴ��aint i=3; i=i ; ��ͬ���g���o����ͬ��iֵ���еĞ�3���еĞ�4���Ă�(g��)�����_�ģ���34��

*3.4�����@��һ��(g��)����ı��_(d��)ʽ��a^= b^= a^= b; ������Ҫ�R�r(sh��)׃���Ϳ��Խ��Qa��b��ֵ����34

3.5���ɷ����@ʽ��̖(h��o)�폊(qi��ng)�ƈ�(zh��)��������Ҫ��Ӌ(j��)����򲢿������P(gu��n)�ĸ�������������̖(h��o)��������������(y��u)�ȼ�(j��)�Ƿ��܉����Ӌ(j��)�����������35��

3.6������&&��||�����������ҿ����^���while((c = getchar()) != EOF && c != '\n')�Ĵ��a……��35

3.7���Ƿ���԰�ȫ���J(r��n)�飬һ��&&��||��߅�ı��_(d��)ʽ�ѽ�(j��ng)�Q��������(g��)���_(d��)ʽ�ĽY(ji��)�����t��߅�ı��_(d��)ʽ����(hu��)����ֵ����36��

3.8����ʲô���_(d��)ʽprintf("%d %d", f1(), f2()); ���{(di��o)����f2�����X�ö�̖(h��o)���_(d��)ʽ��(y��ng)ԓ�_�������ҵ���ֵ�������36��

3.9�����Ӳ��������(f��)�s���_(d��)ʽ�����⌑��δ���x�ı��_(d��)ʽ��“�����c(di��n)”��ʲô����36

3.10 ��a[i] = i ;�У�������P(gu��n)��a[]����һ��(g��)������(hu��)���������@�δ��a�͛]�І��}��iҲ�Ĵ_��(hu��)����1����(du��)������38��

3.11���˂������fi=i ���О���δ���x�������҄�����һ��(g��)ANSI���g���χLԇ�^����Y(ji��)���������������ġ���38��

3.12���Ҳ���W(xu��)��(x��)��Щ��(f��)�s��Ҏ(gu��)�t�����Ӳ��ܱ����@Щδ���x����ֵ����}������38



�����ı��_(d��)ʽ���}��39

*3.13�� i��i ��ʲô�^(q��)�e����39

3.14������Ҳ�ʹ�ñ��_(d��)ʽ��ֵ�����ґ�(y��ng)ԓ��i ߀�� i��������������39

3.15����Ҫ�z��һ��(g��)��(sh��)�Dz���������ɂ�(g��)��(sh��)֮�g����ʲôif(a b c)��������40

3.16����ʲô���µĴ��a����(du��)��int a=1000, b=1000; long int c=a * b;��40

3.17����ʲô����Ĵ��a���ǽo��0��double degC, degF; degC= 5.0 / 9 * (degF - 32);��40

3.18����Ҫ����(j��)�l����һ��(g��)��(f��)�s�ı��_(d��)ʽ�x�o�ɂ�(g��)׃���е�һ��(g��)�������������@�ӵĴ��a����((condition) a : b)= complicated_expression;��41��

3.19������Щ���a�����@�ӵı��_(d��)ʽ��a b=c : d ��Щ���g�����Խ��ܣ���Щ�s��������ʲô����41



���o(h��)Ҏ(gu��)�t��42

3.20��“semantics of‘’change in ANSI C”�ľ�����ʲô��˼����42

3.21��“�o��̖(h��o)���o(h��)”��“ֵ���o(h��)”Ҏ(gu��)�t�ą^(q��)�e����������42



��4�¡�ָᘡ�45



������ָᘑ�(y��ng)�á�45

4.1��ָᘵ�����ʲô��̎����45

4.2������•��һ��(g��)ָᘲ���������һЩ���g�����s���С��@Щ���a��ʲô���}����char *p; *p =malloc(10);��45��

4.3��*p ����p߀��p��ָ���׃������46



ָᘲ�����46

4.4������ָᘲ���int��(sh��)�M�ĕr(sh��)���������韩����46

4.5������һ��(g��)char *��ָ�����ָ��һЩint��׃�����������^��������ʲô((int *)p) ; �@�ӵĴ��a��������47

4.6����ʲô���܌�(du��)void *ָ��M(j��n)�����g(sh��)��������47

4.7������Щ�����ⲿ�Y(ji��)��(g��u)�Ĵ��a���������s���������@ʾ����“unaligned access”(δ��(du��)�R���L��)����Ϣ���@��ʲô��˼����47



���麯��(sh��)����(sh��)��ָᘡ�47

4.8�����Ђ�(g��)����(sh��)������(y��ng)ԓ���ܲ���ʼ��һ��(g��)ָᘣ�void f(int *ip){ static int dummy = 5; ip = &dummy;}���Ǯ�(d��ng)�������{(di��o)�Õr(sh��)��int *ip; f(ip); �{(di��o)���ߵ�ָᘛ]���κ�׃������47��

4.9���ܷ���void ** ͨ��ָ����酢��(sh��)��ʹ����(sh��)ģ�M�����Â��f����(sh��) �� 48

4.10������һ��(g��)����(sh��)extern intf(int *); ��������ָ��int�͵�ָ��������������÷�ʽ����һ��(g��)����(sh��)���{(di��o)��f(&5);�ƺ���������49��

4.11��C�Z�Կ���“�����Â���”�᣿��50



����ָᘆ��}��50

4.12���ҿ�������ָ��{(di��o)�ú���(sh��)�IJ�ͬ�Z����ʽ��������ô��������50

4.13��ͨ��ָ������ʲô����(d��ng)�ҰѺ���(sh��)ָ��x��void *��͵ĕr(sh��)�򣬾��gͨ���^����51

4.14�����������ͺ�ָ�֮�g�M(j��n)���D(zhu��n)�Q���ܷ񕺕r(sh��)������(sh��)����ָ�׃�����������෴����51

*4.15�������Ӱ�һ��(g��)int׃���D(zhu��n)�Q��char *������ԇ������D(zhu��n)�Q�����Dz�������52



��5�¡���ָᘡ� 53



��ָᘺͿ�ָᘳ�����53

5.1�����������Ŀ�ָᘵ�����ʲô����53

5.2�������ڳ�����@��һ��(g��)��ָ�����54

5.3���ÿs����ָᘱ��^“if(p)”�z���ָ��Ƿ���Ч�������ָᘵă�(n��i)�����_(d��)����0��(hu��)���ӣ���55



NULL �ꡡ56

5.4��NULL��ʲô��������ô���x�ģ���56

5.5����ʹ�÷���λģʽ�����ָᘵă�(n��i)����ʾ�ęC(j��)������NULL ����ζ��x�ģ���56

5.6�����NULL���x��#define NULL((char *)0) �����Ϳ����򺯔�(sh��)���벻���D(zhu��n)�Q��NULL �ˆ᣿��57

5.7���ҵľ��g���ṩ���^�ļ��ж��x��NULL��0L����ʲô����57

5.8��NULL���ԺϷ�����������(sh��)ָᘆ᣿��57

5.9�����NULL��0�����ָᘳ����ǵȃr(ji��)�������ҵ���ԓ����һ��(g��)������58

5.10 �������NULL��ֵ��׃����������ʹ�÷����(n��i)����ָᘵęC(j��)��������NULL(������0)

���Ǹ��Æ᣿��58��

5.11��������(j��ng)ʹ���^һ��(g��)���g������ʹ��NULL�Ͳ��ܾ��g����58

5.12�������A(y��)̎����#define Nullptr(type)(type *)0������(chu��ng)�����_��͵Ŀ�ָ�����59



���59

5.13���@���c(di��n)��֣�NULL���Դ_����0������(null)ָᘅs��һ������59

5.14����ʲô����ô���P(gu��n)�ڿ�ָᘵ��ɻ�����ʲô�@Щ���}����l���س��F(xi��n)����60

5.15���Л]��ʲô�����c(di��n)�����k�����������@Щ�c��ָ����P(gu��n)�Ė|��������60

5.16�����]�����P(gu��n)��ָᘵ������@Щ����Ҫ�������ă�(n��i)����ʾ����횞�0���Ǹ����Ά�����60

5.17���f��������ЙC(j��)���÷����ָᘆᣬ���߲�ͬ����ò�ͬ�ı�ʾ����61



��ַ0 �ϵ�����ʲô����61

5.18���\(y��n)�Еr(sh��)������(sh��)ֵ0�D(zhu��n)�Q��ָ��Ժ�һ���ǿ�ָᘆ᣿��61

5.19������L��λ�ڙC(j��)����ַ0̎���Д�����������Ҍ�ָ�ֵ�O(sh��)��0�����g�����ܕ�(hu��)�Ԅ�(d��ng)�����D(zhu��n)�Q�����Ŀ�ָᘃ�(n��i)����ʾ����62��

5.20 �\(y��n)�Еr(sh��)��“null pointer assignment”�e(cu��)�`��ʲô��˼����(y��ng)ԓ���Ӳ�׽������62



��6�¡���(sh��)�M��ָᘡ�63



��(sh��)�M��ָᘵĻ����P(gu��n)ϵ��63

6.1������һ��(g��)Դ�ļ��ж��x��char a[6]������һ��(g��)Դ�ļ���•����extern char *a����ʲô��������63

6.2�������� �fchar a[]��char *a�ǵȃr(ji��)�ġ����@�ӵĆ�����63

6.3����ô����C�Z����“ָᘺ͔�(sh��)�M�ȃr(ji��)”������ʲô��˼����64

6.4����Ȼ�����@ô��ͬ���Ǟ�ʲô���麯��(sh��)�΅��Ĕ�(sh��)�M��ָ�•�����Ի��Q�أ���65



��(sh��)�M���ܱ��xֵ��66

6.5����ʲô�����@����(sh��)�M�xֵ��extern char *getpass(); char str[10]; str=getpass("Enter password:");��66��

6.6����Ȼ������(sh��)�M�xֵ�����@�δ��a��ʲô��������int f(char str[]){ if(str[0] == '\0') str="none";…}��66��

6.7������㲻�ܽo���xֵ����ô��(sh��)�M����ܳɞ���ֵ�أ���66



���67

6.8���F(xi��n)��(sh��)���v����(sh��)�M��ָᘵą^(q��)�e��ʲô����67

6.9�����˸����v����(sh��)�M���^�dz�ָᘡ��@���v��(zh��n)�_������67

6.10����߀�Ǻ�����������ָ���һ�N��(sh��)�M��߀�ǔ�(sh��)�M��һ�Nָ�����67

6.11���ҿ���һЩ“��Ц”�Ĵ��a������5["abcdef"]�@�ӵ�“���_(d��)ʽ”���@��ʲô�ǺϷ���C�Z�Ա��_(d��)ʽ�أ���68



��(sh��)�M��ָᘡ� 68

6.12����Ȼ��(sh��)�M���Õ�(hu��)�˻���ָ������array�ǔ�(sh��)�M����ôarray��&array����ʲô�^(q��)�e������68

6.13�����•��һ��(g��)��(sh��)�M��ָ�����69



��(d��ng)�B(t��i)��(sh��)�M���䡡70

6.14��������\(y��n)�Еr(sh��)�O(sh��)����(sh��)�M�Ĵ��������Ӳ��ܱ���̶���С�Ĕ�(sh��)�M����70

6.15�������•����С�͂���Ĕ�(sh��)�Mһ�ӵľֲ���(sh��)�M����70

6.16����΄�(d��ng)�B(t��i)�����S��(sh��)�M����71

6.17���Ђ�(g��)�ܺõĸ[�T��������@�ӌ���int realarray[10]; int *array = &realarray[-1]; �ҾͿ��԰�“array”��(d��ng)���˜�(bi��o)��1���_ʼ�Ĕ�(sh��)�M����72



����(sh��)�Ͷ�S��(sh��)�M��73

6.18����(d��ng)����һ��(g��)����ָᘵ�ָᘵĺ���(sh��)������S��(sh��)�M�ĕr(sh��)�������g����(b��o)�e(cu��)������73

6.19�������Ӿ������ܾ��g�r(sh��)����δ֪�Ķ��S��(sh��)�M�ĺ���(sh��)����74

6.20���������ں���(sh��)����(sh��)���f�r(sh��)�����o�B(t��i)�̈́�(d��ng)�B(t��i)��S��(sh��)�M����74



��(sh��)�M�Ĵ�С�� 75

6.21����(d��ng)��(sh��)�M�Ǻ���(sh��)�ą���(sh��)�r(sh��)����ʲôsizeof�������_��(b��o)�攵(sh��)�M�Ĵ�������76

6.22�������һ��(g��)�ļ����Д�•����extern�Ĕ�(sh��)�M�Ĵ�С(��������(sh��)�M���x�ʹ�С����һ��(g��)�ļ���)��sizeof�������ƺ���������76��

6.23��sizeof���صĴ�С�����ֹ�(ji��)Ӌ(j��)��������Ӳ����Д���(sh��)�M���ж��ق�(g��)Ԫ��������76



��7 �¡���(n��i)����䡡77



�����ă�(n��i)����䆖�}��77

7.1����ʲô�@�δ��a���У�char *answer; printf("Type something:\n"); gets(answer); printf("You typed \"%s\"\n", answer);��77

7.2���ҵ�strcat() ��������ԇ������Ĵ��a��char *s1= "Hello,"; char *s2= "world!"; char *s3= strcat(s1, s2);�����ҵõ�����ֵĽY(ji��)������78��

7.3������strcat���ęn�f�����܃ɂ�(g��)char *�ͅ���(sh��)������ô֪��(���g)���������������78

*7.4���҄���ԇ���@�ӵĴ��a��char *p; strcpy(p, "abc");���\(y��n)����������ô��������ʲô���]�г��e(cu��)����79��

*7.5��һ��(g��)ָ�׃��������ك�(n��i)������79

7.6����ʹ��fgets���ļ����������x��һ��(g��)��(sh��)�M����ʲô�x���ÿһ�ж���**��һ�еă�(n��i)���أ���79

7.7�����Ђ�(g��)����(sh��)����ԓ����һ��(g��)�ַ���������(d��ng)�������{(di��o)���ߵĕr(sh��)�򣬷��ص��ַ����s��������Ϣ��

��ʲô���� 80

*7.8����ô�����ַ����������ۼ������_������ʲô�أ���81



�{(di��o)��malloc��81

7.9����ʲô���{(di��o)��malloc()�r(sh��)��(b��o)����“waring: assignment of pointer from integer lacks a cast”����81

7.10 ��ʲô��Щ���aС�������ذ�malloc���ص�ֵ�D(zhu��n)�Q������ָ��������81

*7.11�����{(di��o)��malloc()�ĕr(sh��)���e(cu��)�`“���ܰ�void * �D(zhu��n)�Q��int * ”��ʲô��˼����82

7.12���ҿ��������@�ӵĴ��a��char *p = malloc(strlen(s) 1); strcpy(p,s); �y������(y��ng)ԓ��malloc ((strlen(s) 1) * sizeof(char)) ������82��

7.13���Ҟ�malloc����һ��(g��)СС�ķ��b����(sh��)������ʲô���У���82

7.14������•��һ��(g��)ָᘲ���������һЩ��(n��i)�������Dz������@�ӵĴ��a��ʲô���}��char *p; *p = malloc(10);��82��

7.15������΄�(d��ng)�B(t��i)���䔵(sh��)�M����83

7.16�������Д�߀�ж��ك�(n��i)������83

7.17��malloc(0)�Ƿ��ؿ�ָ�߀��ָ��0��(g��)�ֹ�(ji��)��ָ�����83

7.18���� �f�еIJ���ϵ�y(t��ng)�ڳ���ʹ�õĕr(sh��)�����������malloc��Ո(q��ng)�ă�(n��i)�����@�Ϸ�������83



���P(gu��n)malloc ���}��83

7.19����ʲômalloc�������x�V��ָ�ֵ���ҵĴ_�x�^���}7.9������Ҳ���{(di��o)��֮ǰ������extern void *malloc();•������ 83��

7.20������һ���@�ӵĴ��a����һ��(g��)�޴�Ĕ�(sh��)�M�����ڔ�(sh��)ֵ�\(y��n)�㣺double *array = malloc (256��*256��*sizeof(double));malloc()���]�з��ؿ�ָ������dz����\(y��n)�е���Щ��֣�����Č���ijЩ��(n��i)��������malloc()���]�з�������Ո(q��ng)����ô����(n��i)������ʲô����84��

7.21���ҵ�PC�C(j��)��8�׃�(n��i)������ʲô��ֻ�ܷ���640K���ҵă�(n��i)�棿��84

7.22���ҵđ�(y��ng)�ó���dz���ه��(sh��)��(j��)�Y(ji��)��(g��u)�Ĺ�(ji��)�c(di��n)�Ą�(d��ng)�B(t��i)��������malloc/free�Ĵ��r(ji��)����ƿ�i����ԓ��ô������84

7.23���ҵij����DZ������@Ȼ�l(f��)����malloc��(n��i)����ij��(g��)�ط��������ҿ����������І��}����malloc��bug������84



ጷŃ�(n��i)�桡85

7.24����(d��ng)�B(t��i)����ă�(n��i)��һ��ጷ�֮��Ͳ�����ʹ�ã��ǰ�����85

7.25����ʲô���{(di��o)��free()֮��ָᘛ]��׃����ʹ��(�xֵ�����^)ጷ�֮���ָ��ж�ô����ȫ����86

7.26����(d��ng)���{(di��o)��malloc()��һ��(g��)����(sh��)�ľֲ�ָᘷ����(n��i)��r(sh��)����߀��Ҫ��free()�@ʽ��ጷņ�����86

7.27�����ڷ���һЩ�Y(ji��)��(g��u)����������ָ��������(d��ng)�B(t��i)����Č�(du��)���ָᘡ�����ጷŽY(ji��)��(g��u)�ĕr(sh��)����߀��Ҫጷ�ÿһ��(g��)�¼�(j��)ָᘆ�����86��

7.28���ұ���ڳ����˳�֮ǰጷŷ�������Ѓ�(n��i)��᣿��86

7.29�����Ђ�(g��)��������˴����ă�(n��i)����Ȼ����ጷ��ˡ����ǏIJ���ϵ�y(t��ng)������(n��i)���ռ���ʅs���]��׃��ȥ����87��



�����(n��i)��K�Ĵ�С��87��

7.30��free()��ô֪���ж����ֹ�(ji��)��Ҫጷ�����87

7.31����ô���ܷ��ԃmalloc�����Բ����ɷ����**��K�Ƕ�󣿡�87

7.32����ʲôsizeof���ܸ��V������ָ�ă�(n��i)��K�Ĵ�������87



�������亯��(sh��)��88

7.33��(���}6.14���ǘ�)��(d��ng)�B(t��i)���䔵(sh��)�M֮����߀�ܸ�׃���Ĵ�С������88

7.34����realloc()�ĵ� һ��(g��)����(sh��)�����ָᘺϷ��᣿���ʲôҪ�@��������89

7.35��calloc()��malloc()��ʲô�^(q��)�e����(y��ng)ԓ����һ��(g��)������calloc ������书�ܰ�ȫ�᣿free()����ጷ�calloc()����ă�(n��i)�����߀����Ҫһ��(g��)cfree()���� 90

7.36��alloca��ʲô����ʲô���ᳫʹ��������91



��8�¡��ַ����ַ�����92



8.1����ʲôstrcat(string, '!'); ��������92

8.2������z��һ��(g��)�ַ����Ƿ��ij��(g��)ֵƥ������ʲô�@�Ӳ�����if(string == "value")��92

8.3������ҿ��Ԍ�char a[] = "Hello, world!"; �Ǟ�ʲô���܌�char a[14]; a = "Hello, world!";��93��

8.4����ʲô�ҵ�strcat ��������ԇ��char *s1="Hello,"; char *s2="world!"; char *s3��=strcat(s1, s2);�ɵõ��ĽY(ji��)�����������93��

8.5��char a[]= "string literal"; ��char *p= "string literal"; ��ʼ����ʲô�^(q��)�e����(d��ng)�Ҍ�(du��)p[i]�xֵ�ĕr(sh��)������������ˡ���93��

8.6������ô�õ��c�ַ�����(du��)��(y��ng)�Ĕ�(sh��)��(��ASCII �������ַ����µ�)ֵ�����^����ԓ��ô������94

8.7��C�Z������������Z�Ե�"substr"(��ȡ�Ӵ�)�@�ӵĺ���(sh��)������94

8.8���Ҍ��Ñ��I����ַ����x�딵(sh��)�M��Ȼ�����@ʾ��������(d��ng)�Ñ��I��\n�@�ӵ����Еr(sh��)����ʲô�������_̎��������94��

8.9����ע�⵽sizeof('a')��2������1(������sizeof(char))���Dz����ҵľ��g���І��}����94

8.10�������_ʼ���]���Z���ַ����Ć��}���Ƿ��б�Ҫ��(d��n)��sizeof(char)��(hu��)�����x��2���Ա���_(d��)16λ���ַ���������95��



��9�¡��������_(d��)ʽ��׃����96

9.1��C�Z���в���ֵԓ��ʲô��ͣ���ʲô������һ��(g��)��(bi��o)��(zh��n)������ґ�(y��ng)ԓ��#define��enum���x��ֵ�ͼ�ֵ������96��

9.2����Ȼ��C �Z�������еķ���ֵ��������“��”�����Dz��ǰ�TRUE ���x��1��Σ�U(xi��n)�����ij��(g��)��(n��i)���ĺ���(sh��)���P(gu��n)ϵ������“����”����1������ֵ��ô�k���� 97��

9.3����(d��ng)p��ָᘕr(sh��)��if(p)�ǺϷ��ėl�����_(d��)ʽ������98

9.4����ԓʹ����TRUE��FALSE�@�ӵķ�̖(h��o)���Q߀��ֱ����1��0����������������98

9.5���Ҝ�(zh��n)��ʹ�õ�һ��(g��)�������^�ļ����x���Լ���TRUE��FALSE�����������ѽ�(j��ng)�_�l(f��)�IJ��ֲ���������ԓ��ô�k����98��



�� 10�¡�C�A(y��)̎������99



�궨�x��99

10.1�����붨�xһЩ����(sh��)ʽ�ĺ������磺#define square(x)x * x�����������������_�ġ���ʲô����99

10.2���@����һЩ���A(y��)̎���꣬ʹ���������ҿ��Ԍ�������Pascal��C���a�����X����ô������100

10.3����ô��һ��(g��)���Q�ɂ�(g��)ֵ��ͨ�ú����� 101

10.4���������Z����**�÷�����ʲô���� 101

10.5����typdef���A(y��)̎���������Ñ����x�����ʲô�^(q��)�e����102



�^�ļ���102

10.6���ҵ� һ�ΰ�һ��(g��)����ֳɶ���(g��)Դ�ļ����Ҳ�֪��ԓ��ʲô�ŵ�.c�ļ�����ʲô�ŵ�.h�ļ���(“.h”������ʲô��˼��)��102��

10.7��������һ��(g��)�^�ļ��а�����һ�^�ļ�������103

10.8���������^�ļ�����Ҏ(gu��)�t�����ӵ����� 104

10.9�������ļ��ĵ� һ��(g��)•����������ֵ��Z���e(cu��)�`�����ǿ���ȥ�]ʲô���}����104

10.10����ʹ���ˁ��ԃɂ�(g��)��ͬ�ĵ���������^�ļ������������x����ͬ�ĺ�����TRUE��FALSE��Min()��Max()�������������Ķ��x�໥�_ͻ�����Ҹ������Լ����^�ļ��еĶ��xҲ�Л_ͻ����ԓ��ô�k����104��

10.11�����ھ��gһ��(g��)�������������Һ���ȱ����Ҫ��һ��(g��)�����(g��)�^�ļ����l�ܰl(f��)�o��һ�ݣ���105



�l�����g�� 105

10.12�����Ә�(g��u)����^�ַ�����#if�A(y��)̎�����_(d��)ʽ����105

10.13��sizeof��������������#if�A(y��)̎��ָ���І�����106

10.14���ҿ������@����#define����ʹ��#ifdef�����x�ɂ�(g��)��ͬ�Ė|��������106

10.15����(du��)typedef����Ͷ��x�Л]�����#ifdef�Ė|������106

10.16���������#if���_(d��)ʽ���Д��C(j��)���Ǹ��ֹ�(ji��)��ǰ߀�ǵ��ֹ�(ji��)��ǰ����107

10.17����ʲô������#ifdef�P(gu��n)���Ĵ��a���Ј�(b��o)������ֵ��Z���e(cu��)�`����107

10.18�����õ���һЩ���a����߅��̫���#ifdef���Ҳ���ʹ���A(y��)̎���������е�#include ��#ifdef���U(ku��)չ�_����ʲô�k��ֻ����һ�N�l���Ĵ��a������107��

10.19����������A(y��)���x������107



�殐��̎����108

10.20������Щ�f���a��ԇ�D���@�ӵĺ�혋(g��u)���(bi��o)�R(sh��)����#define Paste(a, b) a/**/b ���ǬF(xi��n)�ڲ���������ʲô����108��

10.21������һ��(g��)�f�꣺#define CTRL(c) ('c' & 037)�F(xi��n)�ڲ�����������ʲô����108

10.22����ʲô��#define TRACE(n) printf("TRACE: \%d\n", n) ��(b��o)������“macro replacement within a string literal ”�����ƺ���TRACE(count);�U(ku��)չ����printf("TRACE: \%d\count", count);��109��

10.23������ں�U(ku��)չ���ַ�����������ʹ�úꅢ��(sh��)����109

10.24��������ANSI ��“�ַ�����”�A(y��)̎��������#����̖(h��o)������ֵ������Ϣ�����������nj�(du��)�����Q����������ֵ�M(j��n)���ַ��������@��ʲôԭ������109��

10.25���������A(y��)̎������ij�����������s��֪�������������110



��׃����(sh��)�б��ĺꡡ110

10.26�����ӌ���׃����(sh��)����������A(y��)̎����“�P(gu��n)��”���п�׃����(sh��)�ĺ���(sh��)�{(di��o)�ã���110

10.27�������ͨ�õ��{(di��o)ԇ���а���__FILE__��__LINE__������111
......
չ�_ȫ��

����֪����495��(g��)C�Z�Ԇ��} ���ߺ���

Steve Summit�����I(y��)����ʡ�����W(xu��)Ժ����15���C���̽�(j��ng)�(y��n)������Internet�ϏV�����أ����ҾS�o(h��)��Usenet��„�Mcomp.lang.c��FAQ�б�������(d��ng)ǰ����C��UNIX�Ľ̌W(xu��)�������������ڸ��NC��UNIX�(xi��ng)Ŀ�������c(di��n)�Ƿe�O�Ŀ���ֲ���a�ͽӿ��O(sh��)Ӌ(j��)��

��Ʒ�u(p��ng)Փ(0�l)
���o�u(p��ng)Փ����
�������]
����픲�
�ЈD�W(w��ng)
�ھ��ͷ�