Newsgroups: fj.archives.answers,fj.lang.c
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!ykgw!sun3261!sjc!leia!133.140.40.2!kitano
From: kitano@crd.yokogawa.co.jp (Kinichi - Kinchan - Kitano)
Subject: comp.lang.c Answers to Frequently Asked Questions (FAQ List) in Japanese
Sender: news@leia.pa.yokogawa.co.jp (placeholder for future)
Message-ID: <KITANO.94Oct31210713@sda.crd.Yokogawa.CO.JP>
Date: Tue, 1 Nov 1994 02:07:13 GMT
Expires: Sat, 1 Apr 1995 12:00:00 GMT
Reply-To: kitano@crd.yokogawa.co.jp
Organization: Yokogawa Electric Corporation,Tokyo,Japan
Followup-To: fj.lang.c
Lines: 4236
Xref: galaxy.trc.rwcp.or.jp fj.archives.answers:197 fj.lang.c:1199
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=1199&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

Archive-name: c-faq/japanese
Last-modified: 31 Oct. 1994


  $BK\5-;v$O!"%K%e!<%9%0%k!<%W(B comp.lang.c$B$K4s$;$i$l$?(B Frequently Asked
Questions(FAQ)$B$rK]Lu$7$?$b$N$G$9!#K]Lu$7$?5-;v$O!"(B'94/03$B$KEj9F$5$l$?(B
$B$b$N$G$9!#(B

$B!&F|K\8lLu$N8m$jEy$NJ8@U$O!"KLLn(B(kitano@crd.yokogawa.co.jp)$B$K$"$j$^$9!#(B
$B!&5-;vFb$N(BC$B$N%3!<%I$N<h$j07$$$O!"86Cx$K=`$8$^$9!#(B
$B!&F|K\8lLu$N<ALd(B/$BD{@5!"F|K\8l$K$h$k<ALd$J$I$OKLLn$K$*4j$$$7$^$9!#(B
$B!&=PE5$rL@5-$7$F$b$i$($l$P<+M3$K:FG[I[$7$F$b$i$C$F7k9=$G$9!#(B

  $BK\5-;v$K8=$l$k;29M=q$N>JN,7A$K$D$$$F$O!"4,Kv$N0lMw$r;29M$K$7$F$/$@$5$$!#$J(B
$B$*(BReference$B$N%Z!<%8HV9f$O86=q$N$b$N$G$9!#(B

  $BK\5-;v$NFbMF$O!"85869F$K9g$o$;$F!V$3$N5-;v!W$H$$$&8F$SJ}$r$7$F$$$^$9!#(B
$B$^$?K\5-;v$NCf$G=P$F$/$k!VJT<T!W$b!"85$N(BFAQ$B$NJT<T$r;X$7$^$9!#(B

=======================================================================
$B$O$8$a$K(B

  $B$"$k<o$NOCBj$O$3$N%K%e!<%9%0%k!<%W(B(comp.lang.c)$B$K2?EY$b8=$l$k!#$=$l(B
$B$i$O$b$C$H$b$J<ALd$G$"$j!"Ez$($b$9$0$K=P$F$3$J$$$b$N$b$"$k!#$7$+$7OCBj(B
$B$K$N$\$k$?$S$K!"%M%C%H%o!<%/$N;q8;$HFI<T$N;~4V$,!"JVEz$H$=$&$$$&JVEz$K(B
$B$D$-$b$N$N8mEz$ND{@5$H$$$&ITLS$J$3$H$KHq$d$5$l$k!#(B

  $B$3$N5-;v$OKh7n%]%9%H$5$l$k!#L\E*$O!"$3$l$i$N7+$jJV$5$l$k<ALd$KE*3N$K(B
$B$+$D4JL@$KEz$($k$3$H$K$h$j!"%M%C%H%o!<%/$G$N5DO@$,$b$C$H7z@_E*$JOCBj$K(B
$B0\9T$9$k$h$&$K$b$C$F$$$/$3$H$G$"$k!#(B

  $B$I$s$J$KM%$l$?5-;v$b!"A4HO0O$r%+%P!<$9$k652J=q$d(BC$B8@8l$N%^%K%e%"%k$r(B
$BCm0U?<$/FI$`$3$H$NBeMQ$H$O$J$i$J$$!#(BC$B8@8l$K4X?4$,$"$C$F!"$3$N%0%k!<%W(B
$B$rFI$b$&$H$9$k<T$G$"$l$P!"$3$l$i$N%^%K%e%"%k$r2?:}$+!"$G$-$l$P?t2sFI$`(B
$B$3$H$K$b4X?4$rJ'$&$3$H$G$"$m$&!#;DG0$J$,$i(BC$B8@8l$NK\$d%3%s%Q%$%i$N%^%K(B
$B%e%"%k$NCf$K$OE,@Z$G$J$$J*$,$"$k!#$R$I$$$b$N$K$J$k$H!"$3$N5-;v$,O@GK$7(B
$B$h$&$H$7$F$$$kLB?.$r$3$N@$$K;D$9$N$K9W8%$7$F$$$k!#(BC$B8@8l$K4X$9$kK\$GCm(B
$BL\$KCM$9$kK\$O$3$N5-;v$N;29M=q0lMw$K5s$2$F$"$k!#6=L#$r;}$C$?FI<T$NJY6/(B
$B$N=u$1$K$J$k$h$&$K!"B?$/$N<ALd$d2rEz$K$O!"$3$l$i$NK\$N;29M$9$Y$-%Z!<%8(B
$B$r$D$1$F$"$k(B(ANSI$B$H(BISO C$B$N0c$$$KCm0U$9$k$3$H!#$^$?(BQ5.1$B$r;2>H$N$3$H(B)$B!#(B
($BLuCm(B:$B;29M=q$N%Z!<%8HV9f$O86Cx$N$b$N$G$"$k!#(B)

  C$B$K4X$9$k<ALd$G$3$NK\$KEz$($N:\$C$F$$$J$$$b$N$,$"$l$P!"$G$?$H$3>!Ii(B
$B$G%M%C%H$K<ALd$9$k$N$G$O$J$/!"652J=q$r2?:}$+$"$?$k$+Gn<1$JF1N=$KAjCL$9(B
$B$k$3$H!#%M%C%H$K$O<ALd$K4n$s$GEz$($F$/$l$k?M$,$?$/$5$s$$$k$1$l$I!"%M%C(B
$B%H$K;22C$9$k?M$,A}$($k$K$D$l!"0l$D$N<ALd$K$/$jJV$74s$;$i$l$k2rEz$NNL$d(B
$B<ALd$N?t$,$&$s$6$j$9$k%l%Y%k$^$GMh$D$D$"$k!#(B ($B$b$7$b$3$N5-;v$K<ALd$d%3(B
$B%a%s%H$,$"$l$P!"$3$N5-;v$K%U%)%m!<$9$k$N$G$O$J$/%a%$%k$GJVEz$9$k$3$H!#(B
--$B$3$N5-;v$O%M%C%H%o!<%/$NIi2Y$r8:$i$9$N$,L\E*$G$"$C$FA}$d$9$3$H$,L\E*(B
$B$J$N$G$O$J$$(B--)

  $B$3$N5-;v$O!"$h$/<ALd$5$l$k<ALd$r5s$2$k$@$1$G$J$/!"2?EY$b4s$;$i$l$k2r(B
$BEz$b$^$H$a$F$"$k!#$3$l$i$N2rEz$r$9$Y$FCN$C$F$$$?$H$7$F$b!"$3$N%j%9%H$r(B
$B;~@^$J$,$a$k$3$H$O!"ITCm0U$K%]%9%H$5$l$?<ALd$r8+$F$b!"Ez$($k$3$H$K;~4V(B
$B$rL5BL$K$7$J$$$3$H$KLrN)$D!#(B

  $B$3$N5-;v$O@d$($:2~A1$5$l$F$$$k!#$"$J$?$+$i$N>pJs$r4?7^$9$k!#%3%a%s%H(B
$B$O(Bscs@eskimo.com$B$^$G!#(B

  $B<ALd$O0J2<$N$h$&$K!"$$$/$D$+$N<oN`$KJ,N`$5$l$k!#(B

     1.   $B%L%k%]%$%s%?(B

     2.   $BG[Ns$H%]%$%s%?(B

     3.   $B%a%b%j$N3NJ](B

     4.   $B<0(B

     5.   ANSI C

     6.   C$B%W%j%W%m%;%C%5(B

     7.   $B2DJQ8D0z?t%j%9%H(B

     8.   $B%V!<%k<0$HJQ?t(B

     9.   $B9=B$BN!"Ns5s!"6&MQBN(B

     10.  $B@k8@(B

     11.  Stdio

     12.  $B%i%$%V%i%j%5%V%k!<%A%s(B

     13.  Lint

     14.  $B%9%?%$%k(B

     15.  $BIbF0>.?t(B

     16.  $B%7%9%F%`0MB8(B

     17.  $B$=$NB>(B(Fortran$B$+$i(BC$B$X$NJQ49!"(BYACC$BJ8K!!"$=$NB>(B)

  $B$h$/$"$k<ALd$H$=$N<ALd$NEz$,$3$3$+$i;O$^$k!#(B



1.$B%L%k%]%$%s%?(B

Q1.1:   $B0-L>9b$$%L%k%]%$%s%?$H$O2?$+!#(B

A1.1:   C$B8@8l$NDj5A$K$h$l$P$I$s$J%]%$%s%?$N7?$K$bFCJL$JCM!"$9$J$o$A!V(B
        $B%L%k%]%$%s%?!W$,B8:_$9$k!#$3$N%L%k%]%$%s%?$OB>$N$I$s$J%]%$%s%?(B
        $B$NCM$H$b6hJL2DG=$G!"%*%V%8%'%/%H$d4X?t$N%"%I%l%9$K$J$k$3$H$b$J(B
        $B$$!#%"%I%l%91i;;;R(B&$B$rE,MQ$7$?7k2L$,%L%k%]%$%s%?$H$J$k$3$H$b$J(B
        $B$$!#$^$?(Bmalloc$B$N8F$S=P$7$K@.8y$7$?>l9g$NLa$jCM$,%L%k%]%$%s%?$N(B
        $B>l9g$b$J$$(B(malloc$B$ONN0h3NJ]$K<:GT$7$?>l9g$K%L%k%]%$%s%?$rJV(B
        $B$9!#$3$l$,%L%k%]%$%s%?$NE57?E*$J;H$$J}$G$"$k!#$=$NCM$K$h$j%"%I(B
        $B%l%90J30$N0UL#$r$"$i$o$9FCJL$J%]%$%s%?$NCM!"$?$H$($PNN0h3NJ]$N(B
        $B<:GT$H$+!"$^$@2?$b;X$7$F$$$J$$%]%$%s%?$K;H$o$l$k(B)$B!#(B

        $B%L%k%]%$%s%?$O!"=i4|2=$5$l$F$$$J$$%]%$%s%?$H9M$(J}$G0[$J$k!#%L(B
        $B%k%]%$%s%?$O!"2?$b;X$7$F$$$J$$$3$H$rJ]>Z$5$l$F$$$k!#=i4|2=$5$l(B
        $B$F$$$J$$%]%$%s%?$O!"$I$3$r;X$7$F$$$k$+$o$+$i$J(B
        $B$$!#(BQ3.1$B!"(BQ3.9$B!"(BQ17.1$B$r;2>H$N$3$H!#(B

        $B>e$NDj5A$N$H$3$m$G=R$Y$?$h$&$K!"3F%]%$%s%?$N7?$4$H$K%L%k%]%$%s(B
        $B%?$,B8:_$9$k!#%L%k%]%$%s%?$NFbIt9=B$$O%]%$%s%?$N7?$K$h$C$F0[$J(B
        $B$k$+$b$7$l$J$$!#%W%m%0%i%^$OFbIt9=B$$K$D$$$FCN$kI,MW$O$J$$!#%3(B
        $B%s%Q%$%i$OI,MW$J$i6hJL$,IU$1$i$l$k$h$&$K!"$I$N7?$N%L%k%]%$%s%?(B
        $B$,I,MW$+CN$i$J$1$l$P$J$i$J$$(B($B0J2<$r;2>H(B)$B!#(B

             References: K&R I Sec. 5.4 pp. 97-8; K&R II Sec. 5.4 p.
             102; H&S Sec. 5.3 p. 91; ANSI Sec. 3.2.2.3 p. 38.



Q1.2:   $B$I$&$d$l$P%W%m%0%i%`$NCf$G%L%k%]%$%s%?$r(B"$BF@$k(B"$B$3$H$,$G$-$k$N(B
        $B$+!#(B

A1.2:   C$B8@8l$NDj5A$K$h$l$P!"%]%$%s%?$r=q$/$Y$-$H$3$m$K8=$l$?Dj?t(B0$B$O!"(B
        $B%3%s%Q%$%k;~$K%L%k%]%$%s%?$KJQ49$5$l$k!#$9$J$o$A=i4|2=!&BeF~!&(B
        $BHf3S$r$9$k$H$-$K:8JU(B/$B1&JU$N$I$A$i$+$K%]%$%s%?7?$NJQ?t$+<0$,8=(B
        $B$l$?$H$-$O!"%3%s%Q%$%i$O$b$&0lJ}$NB&$NDj?t(B0$B$,%L%k%]%$%s%?$rI=(B
        $B$7$F$$$k$3$H$rM}2r$7!"7?$K$"$C$?%L%k%]%$%s%?$NCM$r;:$_=P$9!#$7(B
        $B$?$,$C$F0J2<$N(BC$B%W%m%0%i%`$NCGJR$O@5$7$$!#(B

                     char *p = 0;
                     if (p != 0)


        $B$7$+$74X?t$KEO$5$l$k0z?t$OI,$:$7$b%]%$%s%?$rI=$7$F$$$k$+$I$&$+(B
        $B<1JL2DG=$G$O$J$$!#$=$N$H$-%3%s%Q%$%i$O%-%c%9%H$N$D$$$F$$$J$$Dj(B
        $B?t(B0$B$,%L%k%]%$%s%?$r0UL#$7$F$$$k$3$H$rH=JL$G$-$J$$$+$b$7$l$J(B
        $B$$!#Nc$($P(BUNIX$B%7%9%F%`%3!<%k$N(Bexecl$B$O=*C<$,%L%k%]%$%s%?$NJ8;z(B
        $BNs$N%]%$%s%?$r2DJQ8D!"0z$-?t$K<h$k!#$h$C$F4X?t8F$S=P$7$G%L%k%](B
        $B%$%s%?$r07$&$H$-$K$O(B0$B$,%]%$%s%?$rI=$o$7$F$$$k$3$H$r<($9$?$a$K(B
        $BL@<(E*$J%-%c%9%H$,I,MW$H$J$k!#(B

                     execl("/bin/sh", "sh", "-c", "ls", (char *)0);

        $B$b$7%-%c%9%H(B(char *)$B$r>JN,$9$k$H%3%s%Q%$%i$O%L%k%]%$%s%?$rEO$9(B
        $B$H$$$&$U$&$K$OM}2r$;$:!"@0?t(B0$B$rBe$j$KEO$9(B(UNIX$B$N%^%K%e%"%k$G!"(B
        $B$3$NNc$K8m2r$r>7$/$h$&$J@bL@$r$7$F$$$k$b$N$,B?$$(B)$B!#(B

        $B4X?t%W%m%H%?%$%W$r;HMQ$7$F$$$k>l9g$O!"0z?tEO$7$NOC$O!VBeF~$N(B
        $BOC!W$H$J$j!"$?$$$F$$%-%c%9%H$r>JN,$7$F$bLdBj$J$$!#$J$<$J$i%-%c(B
        $B%9%H$N$D$$$F$$$J$$(B0$B$,%]%$%s%?$G$"$k$3$H$H!"$I$N7?$N%]%$%s%?$,(B
        $BI,MW$G$"$k$H$$$&$3$H$r%W%m%H%?%$%W$,%3%s%Q%$%i$K65$($k$N$G!"%3(B
        $B%s%Q%$%i$O(B0$B$r@5$7$/%]%$%s%?$KJQ49$9$k$3$H$,$G$-$k!#$7$+$74X?t(B
        $B%W%m%H%?%$%W$O2DJQ8D$N0z?t$r$b$D4X?t$N0z?t%j%9%H$K7?$N>pJs$rM?(B
        $B$($k$3$H$,=PMh$J$$!#$=$3$G2DJQ8D$N0z?t$r;}$D4X?t$N>l9g$OL@<(E*(B
        $B$J%-%c%9%H$,I,MW$G$"$k!#2DJQ8D$N0z?t$r;}$D4X?t$d4X?t%W%m%H%?%$(B
        $B%W$r;}$?$J$$4X?t$K$D$$$F$O!"%L%k%]%$%s%?$N0z?t$rL@<(E*$K%-%c%9(B
        $B%H$9$k$3$H$,>o$K0lHV0BA4$JJ}K!$G$"$k!#$3$&$9$l$P!"(BANSI$BBP1~$G$J(B
        $B$$%3%s%Q%$%i$r0l;~E*$K;H$&$3$H$b$G$-$k$7!"%W%m%0%i%^$,%]%$%s%?(B
        $B$K$D$$$FM}2r$7$F%W%m%0%i%`$r=q$$$?$H$$$&$3$H$r%3%s%Q%$%i$KEA$((B
        $B$k$3$H$,$G$-$k(B($B$?$^$?$^!"$3$&3P$($F$*$/$N$,0lHV4JC1$G$"$k(B)$B!#(B

        $BMWLs$9$k$H(B

               0$B$K%-%c%9%H$r$D$1$J$$$G(B | $BL@<(E*$J%-%c%9%H$,I,MW(B
               $B$b$h$$>l9g(B              |
               ________________________|_______________________
               $B=i4|2=(B                  | $B4X?t%W%m%H%?%$%W$,%9%3(B
                                       | $B!<%W$K$J$$$H$-$N4X?t8F(B
               ________________________|_$B$S=P$7(B________________
               $BBeF~(B                    | $B2DJQ8D0z?t$N4X?t0z?t(B
               ________________________|_______________________
               $BHf3S(B____________________|_______________________
               $B4X?t%W%m%H%?%$%W$,%9%3(B  |
               $B!<%W$KF~$C$F$$$k$H$-$N(B  |
               $B0z?t$N?t$,8GDj$N4X?t0z(B  |
               $B?t(B                      |


             References: K&R I Sec. A7.7 p. 190, Sec. A7.14 p. 192;
             K&R II Sec. A7.10 p. 207, Sec. A7.17 p. 209; H&S Sec.
             4.6.3 p. 72; ANSI Sec. 3.2.2.3 .



Q1.3:   NULL$B$H$O2?$G!"$I$&(B#define$B$5$l$F$$$k$N$+(B?

A1.3:   $B=q$-J}$H$7$F!"%-%c%9%H$N$J$$(B0$B$,%W%m%0%i%`Fb$K$"$A$3$A;6$i$P$C(B
        $B$F$$$k$N$r9%$^$J$$?M$,$1$C$3$&$$$k!#$=$3$G%^%/%m(BNULL
        $B$,(B<stdio.h>$B$+(B<stddef.h>$B$K(B0$B$H(B ((void *)0 )$B$HDj5A$5$l$F$$$k>l9g(B
        $B$b$"$k!#8e=R(B) #define$B$5$l$F$$$k!#@0?t(B0$B$H%L%k%]%$%s%?(B0$B$N0c$$$r(B
        $B$O$C$-$j$5$;$?$$>l9g$O!"(BNULL$B$r%L%k%]%$%s%?$,I,MW$G$"$k$H$3$m$J(B
        $B$i$I$3$K;HMQ$7$F$b$h$$!#$3$l$O=q$-J}$NLsB+;v$G$7$+$J$$!#%W%j%W(B
        $B%m%C%;%C%5$O(BNULL$B$r(B0$B$KLa$7!"$=$N(B0$B$O%3%s%Q%$%i$K$h$C$F%]%$%s%?$H(B
        $B$7$F2r<a$5$l$k!#$=$l$G$bFC$K4X?t$N0z?t$G$O(BNULL$B$K(B(0$B$K$b(B)$BL@<(E*(B
        $B$J%-%c%9%H$,I,MW$+$b$7$l$J$$(B(Q1.2$B$N2<$NI=$O(BNULL$B$@$1$G$J$/(B0$B$K$b(B
        $B$"$F$O$^$k(B)$B!#(B

        NULL$B$O%]%$%s%?$H$7$F$N$_;H$&$Y$-$G$"$k!#(B Q1.8$B$r;2>H$N$3$H!#(B

             References: K&R I Sec. 5.4 pp. 97-8; K&R II Sec. 5.4 p.
             102; H&S Sec. 13.1 p. 283; ANSI Sec. 4.1.5 p. 99, Sec.
             3.2.2.3 p. 38, Rationale Sec. 4.1.5 p. 74.


Q1.4:   $B%L%k%]%$%s%?$NFbItI=8=$K(B0$B$G$J$$%S%C%H%Q%?!<%s$r;H$C$F$$$k%^%7(B
        $B%s$G$O!"(BNULL$B$O$I$&Dj5A$5$l$F$$$k$N$+!#(B

A1.4:   $B%W%m%0%i%^$O%L%k%]%$%s%?$NFbItI=8=$rCN$kI,MW$,$J$$!#%3%s%Q%$%i(B
        $B$KG$$;$F$*$1$P$h$$!#$b$7$"$k%^%7%s$,(B0$B$G$J$$%S%C%H%Q%?!<%s$r%L(B
        $B%k%]%$%s%?$rI=$9$N$K;H$C$F$$$?$H$7$F$b!"%W%m%0%i%^$,%W%m%0%i%`(B
        $BCf$K!V(B0$B!W$d!V(BNULL$B!W$r=q$$$F%L%k%]%$%s%?$rMW5a$7$?$H$-$K%L%k%](B
        $B%$%s%?$r:n$j=P$9$N$O%3%s%Q%$%i$N;E;v$G$"$k!#$@$+$i%L%k%]%$%s%?(B
        $B$NFbItI=8=$,(B0$B$G$J$$%^%7%s$G(BNULL$B$r(B0$B$K(B#define$B$9$k$N$OB>$N%^%7%s(B
        $B>e$H$*$J$8$h$&$K@5Ev$G$"$k!#$J$<$J$i%-%c%9%H$N$D$$$F$$$J$$(B0$B$,(B
        $B%]%$%s%?$rI,MW$H$9$k>l=j$K$"$i$o$l$?>l9g$K!"%3%s%Q%$%i$O!"$=$N(B
        $B%^%7%s$KE,@Z$J%L%k%]%$%s%?$r:n$j=P$5$J$1$l$P$$$1$J$$$7!":n$j$@(B
        $B$9$3$H$,$G$-$k!#(B


Q1.5:   $B$b$7(BNULL$B$,0J2<$N$h$&$KDj5A$5$l$F$$$k$H$9$k$H!"(B

                     #define NULL (char *)0

        $B%-%c%9%H$5$l$F$$$J$$(BNULL$B$r0z?t$H$7$FEO$94X?t8F$S=P$7$,F0$+$J$/(B
        $B$J$k$N$G$O(B?

A1.5:   $BF0$+$J$$%^%7%s$b$"$k!#$3$3$GLdBj$O%G!<%?$N7?$,0[$J$k$H%]%$%s%?(B
        $B$NFbItI=8=$,0[$J$k%^%7%s$,$"$k$3$H$G$"$k!#>e$N(B#define$B$O!"%-%c(B
        $B%9%H$J$7$N(BNULL$B$r(B char$B$X$N%]%$%s%?$r0z?t$H$7$F$H$k4X?t$KEO$9$H(B
        $B$-$O$&$^$/$$$/$,!"$=$NB>$N7?$N%]%$%s%?$r4X?t0z?t$H$7$F<h$k>l9g(B
        $B$OLdBj$,$"$k!#$3$N>l9g$OJ8K!E*$K@5$7$$!"(B

                     FILE *fp = NULL;

        $B$N$h$&$JNc$G$5$($&$^$/$$$+$J$$>l9g$,$"$k!#(B

        $B$K$b$+$+$o$i$:(BANSI C$B$O(BNULL$B$NDj5AJ}K!$H$7$F$=$NB>$K(B

                     #define NULL ((void *)0)

        $B$r5v$7$F$$$k!#>e$NDj5A$O!"%]%$%s%?$N7?$N07$$$K4X$7$F4V0c$$$N$"(B
        $B$k%W%m%0%i%`$rF0$/$h$&$K$9$k$7(B($B%]%$%s%?$NFbItI=8=$,$I$s$J%G!<(B
        $B%?7?$G$bF1$8%^%7%s$K8B$i$l$k!#$=$&$$$&0UL#$GLr$KN)$D$H$O$A$g$C(B
        $B$H$$$$$K$/$$$,(B)$B!"$3$NDj5A$K$h$j!"(B NULL$B$r%]%$%s%?$N0UL#0J30$G;H(B
        $B$&4V0c$$$r8+$D$1$k$3$H$,$G$-$k$+$b$7$l$J$$(B ($B$?$H$($P(BASCII$B$N(BNUL
        $B%-%c%i%/%?$,K\Ev$OI,MW$J>l9g$J$I!#(BQ1.8$B;2>H(B)$B!#(B

             References: ANSI Rationale Sec. 4.1.5 p. 74.



Q1.6:   $B;d$O!"%G!<%?7?$K1~$8$?%L%k%]%$%s%?$r:n$j=P$9$N$K0J2<$N%^%/%m$r(B
        $B;H$C$F$$$k!#(B

                     #define Nullptr(type) (type *)0


A1.6:   $B$3$N5;$O!"0lIt$N%0%k!<%W$G$O?M5$$,$"$k$,!"$?$$$7$FLr$K$ON)$?$J(B
        $B$$!#BeF~$dHf3S$N:]$K$OI,MW$J$$!#(BQ1.2$B$r;2>H$N$3$H!#BG$A9~$_$r@a(B
        $BLs$9$k$N$K$bLrN)$?$J$$!#$3$s$J%^%/%m$r;H$&$3$H$O!":n<T$N%L%k%](B
        $B%$%s%?$NCN<1$,2x$7$2$G$"$k$3$H$r%W%m%0%i%`$rFI$`?M$K0E<($7!"FI(B
        $B<T$O$3$N%^%/%m$NDj5A$5$l$F$$$k$H$3$m!";H$o$l$F$$$k$H$3$m!"$I$s(B
        $B$J7A$G$b%]%$%s%?$N;H$o$l$F$$$k$H$3$m$r$9$Y$FCm0U?<$/%A%'%C%/$7(B
        $B$J$1$l$P$$$1$J$/$J$k!#(BQ8.1$B$b;2>H$N$3$H!#(B



Q1.7:   $B%]%$%s%?$,%L%k%]%$%s%?$G$J$$$+$I$&$+$N%F%9%H$N>JN,7A!V(Bif(p)$B!W(B
        $B$OM-8z$J$N$+(B?$B%L%k%]%$%s%?$NFbItI=8=$,(B0$B$G$J$$>l9g$O$I$&$J$k$N(B
        $B$+!#(B

A1.7:   C$B8@8l$,<0$N%V!<%kCM$rI,MW$H$9$k>l9g(B(if$B!"(Bwhile$B!"(Bfor$B$d(Bdo$BJ8$K$*$$(B
        $B$F!"$^$?(B&&$B!"(B||$B!"(B!$B!"(B?:$B1i;;;R$H6&$K;H$&>l9g(B)$B!"(B0$B$HHf3S$7$FEy$7$$(B
        $B>l9g$O56$NCM$,;:$_=P$5$l!"$=$NB>$N>l9g$O??$,;:$_=P$5$l$k!#$9$J(B
        $B$o$A(B

                     if(expr)

        $B$H=q$$$?$i$$$D$b!"!V(Bexpr$B!W$,$I$s$J<0$+$K$+$+$o$i$:%3%s%Q%$%i$O(B
        $BI,$:(B

                     if (expr != 0)

        $B$H=q$+$l$?$h$&$KF0:n$9$k!#!V(Bexpr$B!W$r(Bp$B$KCV$-49$($k$H!"(B

                     if(p) $B$O(B if(p != 0)$B$HF1$8(B

        $B$H$$$&$3$H$K$J$k!#Hf3S$NOC$r$7$F$$$k$N$G!"%3%s%Q%$%i$O(B($B<0$N>e(B
        $B$G$O8=$l$l$J$$$,(B)0$B$,%L%k%]%$%s%?$rI=$7$F$$$k$3$H$,$o$+$k$N$G!"(B
        $B@5$7$$CM$r;H$&!#$^$d$+$7$O$J$$!#%3%s%Q%$%i$O$3$N$h$&$KF0$-!"$I(B
        $B$A$i$N<0$K$D$$$F$bF1$8%3!<%I$r;:$_=P$9!#%]%$%s%?$NFbItI=8=$O4X(B
        $B78!V$J$$!W!#(B

        $BO@M}H]Dj1i;;;R(B!$B$O0J2<$N$h$&$K5-=R$9$k$3$H$,$G$-$k!#(B
             !expr$B$O(Bexpr?0:1$B$KEy$7$$(B

             if(!p)$B$O(B if(p==0)$B$HEy$7$$(B
        $B$H$$$&$3$H$r>ZL@$9$k$N$OFI<T$N=IBj$K;D$7$F$*$/!#(B

        if(p)$B$N$h$&$J>JN,7A$OJ8K!E*$K$O@5$7$$$1$l$I!"%W%m%0%i%_%s%0%9(B
        $B%?%$%k$H$7$F$O!"$h$/$J$$$H9M$($k?M$b$$$k!#(B

        Q8.2$B$r;2>H$N$3$H(B

             References: K&R II Sec. A7.4.7 p. 204; H&S Sec. 5.3 p.
             91; ANSI Secs. 3.3.3.3, 3.3.9, 3.3.13, 3.3.14, 3.3.15,
             3.6.4.1, and 3.6.5 .



Q1.8:   $B$b$7!V(BNULL$B!W$H!V(B0$B!W$,F1$8$b$N$rI=$9$J$i!"$I$A$i$r;H$($P$h$$$N(B
        $B$+!#(B

A1.8:   $BB?$/$N%W%m%0%i%^$O%]%$%s%?$rI=$9>lLL$G$O!"CM$r%]%$%s%?$H$7$F;H(B
        $B$C$F$$$k$3$H$NCm0U=q$-$H$7$F!V(BNULL$B!W$r;H$&$Y$-$@$H?.$8$F$$$k!#(B
        $B!V(BNULL$B!W$H!V(B0$B!W$r<h$j4,$/:.Mp$O!"!V(B0$B!W$r(B#define$B$N8e$m$K1#$7$F(B
        $B$7$^$&$3$H$GNX$r$+$1$F$$$k$H?.$8!"%-%c%9%H$N$J$$!V(B0$B!W$rBe$j$K(B
        $B;H$C$F$$$k?M$b$$$k!#$3$NLdBj$K$OM#0l$N@52r$H$$$&$b$N$OB8:_$7$J(B
        $B$$!#(BC$B%W%m%0%i%^$O!"!V(BNULL$B!W$H!V(B0$B!W$O8r492DG=$G!"%-%c%9%H$5$l$F(B
        $B$$$J$$!V(B0$B!W$r=i4|2=!&BeF~!&Hf3S$N>lLL$G;H$&$3$H$O!"J8K!>eG'$a(B
        $B$i$l$F$$$k$3$H$rM}2r$7$J$1$l$P$J$i$J$$!#!V(BNULL$B!W$r;H$&$3$H$O(B(
        $B!V(B0$B!W$r;H$&$N$H0c$C$F(B)$B!"%]%$%s%?$,4X78$7$F$$$k$3$H$NCm0U=q$-$G(B
        $B$7$+$J$$!#%W%m%0%i%^$O%]%$%s%?$N(B0$B$H@0?t$N(B0$B$r6hJL$9$kI,MW$,$"$k(B
        $B$H$-$K$O!V(BNULL$B!W$K(B($B<+J,$GM}2r$9$kBe$o$j!"$"$k$$$O%3%s%Q%$%i$,(B
        $B2r<a$9$kBe$o$j$K(B)$BMj$C$F$O$$$1$J$$!#(B

        NULL$B$r!"%]%$%s%?0J30$N(B0$B$,I,MW$J>lLL$K;H$C$F$O$J$i$J$$!#%W%m%0(B
        $B%i%`$OF0$/$+$b$7$l$J$$$,!"%3%s%Q%$%i$K4V0c$C$?%a%C%;!<%8$rAw$C(B
        $B$F$$$k$3$H$K0c$$$O$J$$(B(ANSI$B$O(BNULL$B$NDj5A$K(B(void *)0$B$r;H$&$3$H$r(B
        $B5v$7$F$$$k!#$3$N>l9g%]%$%s%?0J30$,I,MW$J>l9g$O%(%i!<$H$J$k(B)$B!#(B
        $BFC$K(BASCII$B$N%L%k%-%c%i%/%?(B(NUL)$B$,I,MW$J>l9g$O!"@dBP$K!V(BNULL$B!W$r(B
        $B;H$C$F$O$J$i$J$$!#(B

        $BI,MW$J$i<+J,$G(B

                     #define NUL '\0'

        $B$rMQ0U$9$k$3$H!#(B

             Reference: K&R II Sec. 5.4 p. 102.



Q1.9:   $B$G$b(B0$B$h$j$O(BNULL$B$r;H$&$[$&$,!"(BNULL$B$NCM$,>-MhBe$o$k$3$H$r9M$($k(B
        $B$H!"FC$K%L%k%]%$%s%?$NFbItI=8=$,(B0$B$G$J$$%^%7%s$K$D$$$F$OM%$l$F(B
        $B$$$k$N$G$O!#(B

A1.9:   $B$$$d!#%^%/%m$r;H$C$F?t$r=q$/$Y$-$H$3$m$r5-9f$KCV$-49$($k$3$H(B
        $B$O!"CM$,>-MhJQ$o$k$+$b$7$l$J$$$+$i!"$h$/$d$k$1$I!"$3$l$O(BNULL
        $B$r(B0$B$NBe$j$K;H$&M}M3$8$c$J$$!#$b$&0lEY@bL@$7$h$&!#(BC$B8@8l$O!"%=!<(B
        $B%9%3!<%I>e$N(B0$B$,(B($B%]%$%s%?$r;H$&>lLL$G$O(B)$B%L%k%]%$%s%?$r:n$j=P$9(B
        $B$3$H$rJ]>Z$7$F$$$k!#(BNULL$B$r;H$&$N$O!"%W%m%0%i%_%s%0$N=q$-J}$N7h(B
        $B$^$j$G$7$+$J$$!#(B



Q1.10:  $B:.Mp$7$F$-$?!#(BNULL$B$O(B0$B$H$J$k$3$H$,J]>Z$5$l$F$$$k!#$1$l$I%L%k%](B
        $B%$%s%?$O(B 0$B$H$J$k$3$H$,J]>Z$5$l$$$J$+$C$?$s$8$c$"!D(B

A1.10:  "$B%L%k(B"$B$H$+(B"NULL"$B$H$$$&C18l$,L5B$:n$K;H$o$l$k$H$-$O0J2<$N$I$l$+(B
        $B$r0UL#$9$k!#(B


        1    $B35G0$H$7$F$N%L%k%]%$%s%?!#(BC$B8@8lFb$NCj>]E*$J35G0$G$"$C(B
             $B$F(BQ1.1$B$GDj5A$7$?!#$3$l$O0J2<$N$h$&$K<BAu$5$l$F$$$k!#(B


        2    $B%L%k%]%$%s%?$NFbIt(B($B$"$k$$$O<B9T;~$N(B)$BI=8=!"(B0$B$G$O$J$$$+$b$7(B
             $B$l$J$$$7!"%]%$%s%?$N7?$K$h$C$FI=8=J}K!$,0[$J$k$+$b$7$l$J(B
             $B$$!#<B:]$NCM$O%3%s%Q%$%i$N:n@.<T$7$+4X?4$r;}$?$J$$$O$:$G(B
             $B$"$k!#(BC$B%W%m%0%i%`$r=q$/?M$O$=$s$J$b$N$r8+$J$$!#$J$<$J$iH`(B
             $B$i$,;H$&$N$O0J2<$N$b$N$G$"$k!#(B


        3    $B%L%k%]%$%s%?$N%=!<%9%3!<%I>e$NI=8=!"$3$l$O!V(B0$B!W$H$$$&J8;z(B
             $B$G$"$k!#$=$7$F$3$l$O$7$P$7$P!"0J2<$N%^%/%m$N8e$m$K1#$l$F(B
             $B$7$^$&!#(B


        4    NULL$B%^%/%m!"$3$l$O!V(B0$B!W$d!V(B(void*)0$B!W$H$7$FDj5A$5$l$F$$(B
             $B$k!#(B

             $B:G8e$K!"0J2<$N$b$N$O:.F1$7$d$9$$$,!"JL$N$b$N$G$"$k!#(B


        5    ASCII$B$N%L%k%-%c%i%/%?!<(B(NUL)$B!"$3$l$O$9$Y$F$N%S%C%H$,(B0$B$G$"(B
             $B$k!#$?$@$7L>A0$,;w$F$$$k$3$H$r=|$$$F%L%k%]%$%s%?$H6&DLE@(B
             $B$O$J$$!#$3$NJ8;z$,(B C$B8@8l$G$OJ8;zNs$r=*N;$5$;$k$N$G!"6u$N(B
             $BJ8;zNs$O0J2<$N$h$&$K8F$P$l$k!#(B


        6    $B!V%L%k%9%H%j%s%0!W!#$3$l$O6u$NJ8;zNs(B("")$B$+$i$J$k!#$3$N8F(B
             $B$S$+$?$r;H$&$H:.Mp$r>7$-$=$&$G$"$k(B($BHr$1$?$[$&$,$h$$(B)$B!#$J(B
             $B$<$J$i%L%k%H%j%s%0$O%L%k(B('\0')$B%-%c%i%/%?$H4X78$,$"$k$,!"(B
             $B%L%k%]%$%s%?$K$O4X78$J$$!#%L%k%]%$%s%?$NOC$7$r$9$k$H$H(B1.
             $B$KLa$C$F35G0$NOC$K$J$k!#(B

        $B$3$N;qNA$G$O%L%k%]%$%s%?$H$$$&8@MU$r(B1$B$N0UL#$G!"!V(B0$B!W$H$$$&J8;z(B
        $B$r(B 3$B$N0UL#$G!"!V(BNULL$B!W$H$$$&8@MU$r(B4$B$N0UL#$G;H$C$F$$$k!#(B



Q1.11:  $B$J$<%L%k%]%$%s%?$K4X$9$k:.Mp$,B8:_$9$k$N$+!#$J$<$3$l$i$NLdBj$,(B
        $B$3$s$J$K2?EY$b=P$FMh$k$N$+!#(B

A1.11:  C$B%W%m%0%i%^$O!"@N$+$i%^%7%s$N<BAu$K4X$7$FI,MW0J>e$KCN$j$?$,(B
        $B$k!#%L%k%]%$%s%?$,$?$$$F$$$N%^%7%s$G!"%=!<%9%3!<%I>e$bFbItI=8=(B
        $B>e$b(B0$B$G$"$k$3$H$,!"J]>Z$5$l$J$$2>Dj$r>7$$$F$$$k!#%^%/%m(B
        $B!V(BNULL$B!W$r;H$&$3$H$O$=$NCM$,>-MhJQ2=$9$k$+$b$7$l$J$$$3$H$d!"L/(B
        $B$J%^%7%s>e$G$O8=$K(B0$B$G$J$$$3$H$r;X$7$F$$$k!#!V(Bif(p==0)$B!W$H=q$/(B
        $B$H!"Hf3S$9$kA0$K(B0$B$r%]%$%s%?7?$KJQ49$9$k$H$$$&$h$j$O!"(Bp$B$r@0?t7?(B
        $B$KJQ49$9$k$3$H$rI,MW$H$9$k$H2r<a$5$l$,$A$G$"$k!#:G8e$K(B($B>e$G5-(B
        $B=R$7$?(B)$B!V%L%k!W$H$$$&8@MU$r!"$$$/$D$+$N0UL#$K;H$$2s$9$H$-$K0U(B
        $BL#$N0c$$$rBgL\$K8+$,$A$G$"$k!#(B

        $B:.Mp$rHr$1$k$h$$J}K!$O!"(BC$B8@8l$K$O%-!<%o!<%I$,$"$C$F(B(Pascal
        $B$N(Bnil$B$N$h$&$J(B)$B!"$=$l$r;H$C$F%L%k%]%$%s%?$rMW5a$9$k$H9M$($k$3$H(B
        $B$G$"$k!#%3%s%Q%$%i$O%=!<%9%3!<%I$+$i7?$,7hDj$G$-$k$H$-(B
        $B$O!"(B"nil"$B$r@5$7$$7?$N%L%k%]%$%s%?$KJQ49$9$k$3$H$,$G$-$k$7!"$G(B
        $B$-$J$$$H$-$O6l>p$r=P$9!#<B:]$K$O%L%k%]%$%s%?$N(BC$B8@8l$N%-!<%o!<(B
        $B%I$O(B"nil"$B$G$O$J$/!V(B0$B!W$G$"$k!#(B0$B$O(B"nil"$B$HF1$8F/$-$r$9$k!#0c$$(B
        $B$O!"%-%c%9%H$5$l$F$$$J$$(B0$B$K$O%(%i!<%a%C%;!<%8$r=P$9Be$j$K@0?t(B
        $B$N(B0$B$r:n$j=P$9$3$H$G$"$k!#%-%c%9%H$5$l$F$$$J$$(B0$B$r%L%k%]%$%s%?$N(B
        $B$D$b$j$G;H$&$H!"$=$N%3!<%I$O$&$^$/F0$+$J$$$+$b$7$l$J$$!#(B



Q1.12:  $B$^$@:.Mp$7$F$$$k!#$3$N%L%k%]%$%s%?$K4X$9$k$4$?$4$?$,M}2r$G$-$J(B
        $B$$!#(B

A1.12:  $B0J2<$NFs$D$N4JC1$J%k!<%k$K=>$(!#(B

        1    $B%=!<%9%3!<%IFb$G%L%k%]%$%s%?$r;X$7$?$$$H$-$O!"!V(B0$B!W$+(B
             $B!V(BNULL$B!W$r;H$(!#(B

        2    $B!V(B0$B!W$d!V(BNULL$B!W$r4X?t$N0z?t$K;H$&$H$-$O!"5/F0$9$k4X?t$,A[(B
             $BDj$7$F$$$k%]%$%s%?7?$K%-%c%9%H$7$m!#(B

        $B0J2<$N5DO@$O!"$"$k<o$N8m2r$KEz$($k$b$N$+!"%L%k%]%$%s%?$NFbItI=(B
        $B8=$K4X$9$k$b$N$+(B($B$3$l$OCN$i$J$/$F$h$$$b$N$@(B)$B!"(BANSI C$B$G$N2~NIE@(B
        $B$K4X$9$k$3$H$G$"$k!#(BQ1.1$B!"(BQ1.2$B!"(BQ1.3$B$rM}2r$7$F(BQ1.8$B!"(BQ1.11$B$K$D(B
        $B$$$F9M$($l$P!"$&$^$/$d$C$F$$$1$k!#(B



Q1.13:  $B%L%k%]%$%s%?$r<h$j4,$/$3$l$i$N:.Mp$r9M$($l$P!"C1=c$K%L%k%]%$%s(B
        $B%?$OFbItE*$K$O(B0$B$GI=8=$5$l$k$H7h$a$F$7$^$C$?$[$&$,4JC1$J$N$G(B
        $B$O!#(B

A1.13:  $BB>$K<h$jN)$F$FM}M3$,$J$1$l$P!"$=$&$9$k$3$H$OK>$^$7$/$J$$!#$J$<(B
        $B$J$i!"$=$&$9$k$3$H$O%L%k%]%$%s%?$N<BAu$KI,MW0J>e$N94B+$rM?$($k(B
        $B$3$H$K$J$k!#Nc$($P!"%L%k%]%$%s%?$X$NITEv%"%/%;%9$r%O!<%I%&%(%"(B
        $B$GJa$^$($k;EAH$_$K$J$C$F$$$k$H!"%L%k%]%$%s%?$r(B0$B0J30$NFCJL$J%S(B
        $B%C%H%Q%?!<%s$GI=8=$7$?$[$&$,!"$`$7$m<+A3$G$"$k!"(B

        $B$=$N$&$(!"$3$N$h$&$J<h$j7h$a$,2?$r$b$?$i$9$N$+!#%L%k%]%$%s%?$r(B
        $BM}2r$9$k$3$H$O!"$=$NFbItI=8=$,(B0$B$G$"$k$+$NM}2r$rI,MW$H$7$J$$!#(B
        $B%L%k%]%$%s%?$NFbItI=8=$,(B0$B$G$"$k$H2>Dj$7$F$b!"%3!<%I$O>/$7$b=q(B
        $B$-$d$9$/$J$i$J$$(B (Q3.11$B$G=R$Y$k!"$"$^$j$*A&$a$7$?$/$J$$(Bcalloc
        $B$N;H$$J}$r=|$/(B)$B!#%]%$%s%?$NFbItI=8=$,(B0$B$G$"$k$3$H$rJ]>Z$7$?$H$7(B
        $B$F$b!"4X?t$N0z?tFb$G$N%-%c%9%H$,ITMW$K$J$k$o$1$G$O$J$$!#$J$<$J(B
        $B$i%]%$%s%?$NBg$-$5$O!"(Bint$B$NBg$-$5$H0[$J$k$+$b$7$l$J$$(B($B$b$7%L%k(B
        $B%]%$%s%?$r;H$&$H$-$K(B0$B$NBe$j$K(BQ1.11$B$G=R$Y$?(B"nil"$B$rBe$j$K;H$&$3(B
        $B$H$K$J$C$?$J$i!"FbItI=8=$K$D$$$F2>Dj$9$kI,MW$5$($J$$(B)$B!#(B



Q1.14:  $B%L%k%]%$%s%?$K(B0$B0J30$NCM$r;HMQ$9$k%^%7%s$d!"0[$J$k7?$N%]%$%s%?(B
        $B$K0[$J$kFbIt7A<0$r;}$D%^%7%s$OK\Ev$KB8:_$9$k$N$+!#(B

A1.14:  Prime50$B%7%j!<%:$O$9$/$J$/$H$b(BPL/I$B$G$O!"%;%0%a%s%H(B07777$B!&%*%U%;(B
        $B%C%H(B0$B$r%L%k%]%$%s%?$NFbItI=8=$H$7$F;H$C$F$$$?!#8e$N%b%G%k$O%;(B
        $B%0%a%s%H(B0$B!&%*%U%;%C%H(B0$B$r(B C$B$N%L%k%]%$%s%?$K;H$C$?!#$3$N$?$a(B
        $B$K(BTCNP(TEST C NULL POINTER)$B$N$h$&$J?7$7$$L?Na$,!"$=$l$^$G$K8m(B
        $B$C$?2>Dj$r$7$F=q$+$l$?!"%X%^$J(BC$B%W%m%0%i%`$r5_:Q$9$k$?$a$KI,MW(B
        $B$H$J$C$?!#$b$C$H8E$$(B($B%P%$%H%"%I%l%9$G$O$J$/(B)$B%o!<%I%"%I%l%9J}<0(B
        $B$N(BPrime$B$N%^%7%s$O!"%o!<%I%]%$%s%?(B(int *)$B$h$j$b%P%$%H%]%$%s(B
        $B%?(B(char *)$B$N$[$&$,Bg$-$$$3$H$G0-L>9b$+$C$?!#(B

        Data General$B$N(BEclipse MV$B%7%j!<%:$K$O!"%"!<%-%F%/%A%c$,%5%]!<%H(B
        $B$9$k(B 3$B$D$N%]%$%s%?$N%U%)!<%^%C%H(B(word$B$H(Bbyte$B$H(Bbit)$B$,B8:_$7$?!#(B
        $B$3$N$&$AFs$D$O(BC$B%3%s%Q%$%i$K$h$j;H$o$l$k!#(Bbyte$B%]%$%s%?$O(Bchar *
        $B$H(Bvoid *$B$K!"(Bword$B%]%$%s%?$O$[$+$N$9$Y$F$N%]%$%s%?7?$K;H$o$l$F$$(B
        $B$k!#(B

        Honeywell-Bull$B$N%a%$%s%U%l!<%`$NCf$K$O!"%S%C%H%Q%?!<%s(B0600$B$r(B(
        $BFbIt$N(B)$B%L%k%]%$%s%?$H$7$F;H$C$F$$$k$b$N$b$"$k!#(B

        CDC$B<R$N(BCyber 180$B%7%j!<%:$O%j%s%0!&%;%0%a%s%H!&%*%U%;%C%H$+$i$J(B
        $B$k(B 48$B%S%C%H$N%]%$%s%?$r;}$C$F$$$?!#B?$/$N%f!<%6!<(B($B%j%s%0(B11$B$GAv(B
        $B$k(B)$B$O%L%k%]%$%s%?$H$7$F(B0xB00000000000$B$r;H$&!#(B

        $B%7%s%\%j%C%/%9<R$N(BLISP$B%^%7%s$O!"%?%0IU$-%"!<%-%F%/%A%c$J$N$G!"(B
        $B$=$b$=$b%]%$%s%?$r?tCM$GI=$9$H$$$&35G0$5$(;}$?$J$$!#(B<NIL,0>($B86(B
        $BB'$H$7$FB8:_$7$J$$(B<object,offset>$B$N%O%s%I%k(B)$B$r(BC$B$N%]%$%s%?$H$7(B
        $B$F;H$C$F$$$k!#(B

        80*86$B%W%m%;%C%5$O(B(IBM-PC$B$G$O(B)$B%a%b%j%b%G%k$K$h$C$F$O!"%G!<%?$K(B
        16$B%S%C%H%]%$%s%?$r;H$$!"4X?t$K$O(B32$B%S%C%H%]%$%s%?$r;H$&!#$^$?5U(B
        $B$N$3$H$b$"$k!#(B

        $B8E$$(BHP 3000$B%7%j!<%:$O%P%$%H%"%I%l%9$H%o!<%I%"%I%l%9$G0[$J$k%"(B
        $B%I%l%C%7%s%0J}K!$r;H$C$F$$$?!#$@$+$iF1$8%"%I%l%9$r;X$7$F$$$F(B
        $B$b!"(Bvoid$B$H(Bchar$B$N%]%$%s%?$O!"(Bint$B$N(B($B9=B$BN$J$I$b(B)$B%]%$%s%?$H0c$C(B
        $B$?FbItI=8=$r;}$C$F$$$?!#(B



Q1.15:  $B<B9T;~$K=P$k!V(Bnull pointer assignment($B%L%k%]%$%s%?$NBeF~(B)$B!W$H(B
        $B$$$&%(%i!<%a%C%;!<%8$O2?$r0UL#$9$k$N$+!#$I$&$d$C$FLdBj$r$?$0$C(B
        $B$F$$$1$P$h$$$+!#(B


A1.15:  $B$3$N%a%C%;!<%8$O(BMS-DOS$B>e$G$7$+H/@8$7$J$$(B(16$B>O;2>H(B)$B!#%L%k%]%$%s(B
        $B%?$r;H$C$F(B 0$BHVCO$K=q$-9~$s$@$3$H$r0UL#$7$F$$$k!#(B

        $B%G%P%C%,$O!"$?$$$F$$(B0$BHVCO$K%V%l!<%/%]%$%s%H$rD%$k$3$H$r5v$7$F(B
        $B$$$k!#$b$7$/$O(B0$BHVCO$r@hF,$K(B20$B%P%$%H$+$=$3$iJL$N%P%C%U%!$K%3%T(B
        $B!<$7$F!"CM$,JQ2=$7$F$$$J$$$3$H$r!"<~4|E*$K3N$+$a$k%3!<%I$r%A%g(B
        $B%$$H=q$1$P$h$$!#(B



2.$BG[Ns$H%]%$%s%?(B

Q2.1:   $B$"$k%=!<%9%U%!%$%k$G(Bchar a[6]$B$HDj5A$7$F!"JL$N%U%!%$%k$G(Bextern
        char *a$B$H@k8@$7$?!"$J$<$3$l$O$&$^$/$$$+$J$$$N$+!#(B

A2.1:   extern char *a$B$H$$$&@k8@$,!"<B:]$N@k8@$H?)$$0c$&$+$i$G$"$k!#!V(B
        $B%?%$%W(BT$B$X$N%]%$%s%?!W$O!V%?%$%W(BT$B$NG[Ns!W$H$O0[$J$k!#(Bextern
        char a[]$B$r;H$(!#(B

             References: CT&P Sec. 3.3 pp. 33-4, Sec. 4.5 pp. 64-5.



Q2.2:   $B$G$b(Bchar a[]$B$O(Bchar *a$B$HF1$8$HJ9$$$?$3$H$,$"$k$,!#(B

A2.2:   $BA4A3JL$N$b$N$G$"$k(B($B7/$,J9$$$?OC$H$$$&$N$O!"$-$C$H4X?t$N2>0z?t(B
        $B$NOC$@!#(BQ2.4$B;2>H(B)$B!#G[Ns$O%]%$%s%?$H0c$&!#G[Ns$N@k8@!V(Bchar
        a[6];$B!W$O(B6$BJ8;zJ,$NNN0h$r3NJ]$7$F!"$=$l$r!V(Ba$B!W$H$$$&L>A0$G<1JL(B
        $B$9$k$3$H$rMW5a$9$k!#$9$J$o$A!V(Ba$B!W$H$$$&L>A0$N>l=j$,$"$C$F!"$=(B
        $B$3$K$O(B6$BJ8;z$r<}$a$k$3$H$,$G$-$k!#$=$l$K$?$$$7$F%]%$%s%?$N@k8@(B
        $B!V(Bchar*p$B!W$O!"%]%$%s%?$r<}$a$k>l=j$rMW5a$9$k!#%]%$%s%?$O(Bp$B$H$$(B
        $B$&L>A0$G<1JL$5$l!"$I$s$J(Bchar($B$"$k$$$OO"B3$7$?(Bchar$B$NNs(B)$B$r;X$9$3(B
        $B$H$b$G$-!"$=$N(Bchar$B$O$I$3$K$"$C$F$b9=$o$J$$!#(B

        $BNc$K$h$C$F!"I4J9$O0l8+$KG!$+$:$G$"$k!#<0(B

                     char a[] = "hello";
                     char *p = "world";

        $B$O0J2<$N$h$&$KI=8=$G$-$k%G!<%?9=B$$r;}$D!#(B

                  +---+---+---+---+---+---+
                a:| h | e | l | l | o |\0|
                  +---+---+---+---+---+---+

                  +---+       +---+---+---+---+---+---+
                p:| *=======> | w | o | r | l | d |\0|
                  +---+       +---+---+---+---+---+---+

        x[3]$B$N$h$&$JI=8=$+$i;:$_=P$5$l$k%3!<%I$,!"(Bx$B$,%]%$%s%?$+G[Ns$+(B
        $B$G0c$&$N$@$HM}2r$9$k$3$H$OBg;v$J$3$H$G$"$k!#(B

        $B>e5-$N@k8@$rM?$($i$l$?$H$7$F!"%3%s%Q%$%i$O(Ba[3]$B$H$$$&<0$r8+$?$H(B
        $B$3$m$G(B

        (1) $B!V(Ba$B!W$N$H$3$m$K?J$_!"(B

        (2) $B$=$3$+$i(B3$B$D?J$s$G!"(B

        (3) $B:G8e$KCM$r<h$j=P$9!"(B
        $B$H$$$&%3!<%I$r$O$-$@$9!#(Bp[3]$B$H$$$&<0$r8+$k$H(B

        (1) $B!V(Bp$B!W$K?J$_!"(B

        (2) $B$=$3$KB8:_$9$k%]%$%s%?$NCM$r<h$j=P$7!"(B

        (3) $B%]%$%s%?$NCM$K(B3$B$r2C$(!"(B

        (4) $B%]%$%s%?$,;X$9>l=j$+$iJ8;z$r<h$j=P$9!"(B
        $B$H$$$&%3!<%I$r$O$-$@$9!#>e$NNc$G$O(Ba[3]$B!"(Bp[3]$B$O$?$^$?$^F1$8J8(B
        $B;z(B'l'$B$r;X$9$,%3%s%Q%$%i$O$=$3$K$?$I$jCe$/$N$KJL$NF;$r$?$I$k$N(B
        $B$G$"$k(B(Q17.19$B$H(BQ17.20$B$r;2>H$N$3$H(B)$B!#(B



Q2.3:   C$B$G!V%]%$%s%?$HG[Ns$OF1Ey!W$H$$$&$N$O2?$r0UL#$7$F$$$k$N$+!#(B

A2.3:   C$B$K$*$1$k%]%$%s%?$K4X$9$k:.Mp$NB?$/$O!">e$NJ8$K$"$k$h$&$J8m2r(B
        $B$+$i$-$F$$$k!#G[Ns$H%]%$%s%?$,F1Ey$H$$$C$F$b!"$3$NFs$D$,$^$C$?(B
        $B$/F1$8$H$+8r492DG=$G$"$k$H$$$&$3$H$O0UL#$7$F$$$J$$!#(B

        $B!VF1Ey!W$H$$$&$N$O0J2<$NDj5A$r;X$7$F$$$k(B
             $B<0Cf$K8=$o$l$k7?!V(BT$B$NG[Ns!W$H$$$&:8JUCM(B(Q2.5$B;2>H(B)$B$O(B($B8e=R(B
             $B$9$k(B3$B$D$NNc30$r=|$$$F(B)$B!"G[Ns$N:G=i$NMWAG$r;X$9%]%$%s%?$K(B
             $B0UL#$,3J2<$2$K$J$k!#7k2L$H$7$F$G$-$k%]%$%s%?$N7?$O!V(BT$B$X$N(B
             $B%]%$%s%?!W$H$J$k!#(B
        (3$B$D$NNc30$H$O!"(B1)$BG[Ns$,(Bsizeof$B$N0z?t$H$J$k$H$-!"(B2)$B%"%I%l%91i;;(B
        $B;R(B&$B$N0z?t$H$J$k$H$-$H!"(B 3)char$B7?$NG[Ns$rJ8;zNs$G=i4|CM$9$k$H(B
        $B$-(B)$B!#(B

        $B$3$NDj5A$K$h$j!"1i;;;R(B[]$B$rG[Ns$K;H$C$F$b!"%]%$%s%?$K;H$C$F$b$?(B
        $B$$$7$F0c$$$O$J$$!#(B a[i]$B$H=q$$$?$H$-!">e$N%k!<%k$K$h$jG[Ns$N;2(B
        $B>H!V(Ba$B!W$O%]%$%s%?$X$H@.$j2<$,$k!#$3$l$G%]%$%s%?JQ?t$KBP$7(B
        $B$F(Bp[i]$B$H=q$/$N$HF1$8$3$H$K$J$C$F$7$^$C$?(B($B$?$@$7(BQ2.2$B$G@bL@$7$?(B
        $B$h$&$K!"%a%b%j$N%"%/%;%9$N$7$+$?$O0[$J$k$+$b$7$l$J$$(B)$B!#$I$A$i(B
        $B$N>l9g$b!"Dj5A$K$h$j!"(B(x$B$,G[Ns$G$"$C$F$b%]%$%s%?$G$"$C$F(B
        $B$b(B)x[i]$B$H=q$/$3$H$O!"(B*((x)+(i))$B$H$^$C$?$/F1$8$G$"$k!#(B

             References: K&R I Sec. 5.3 pp. 93-6; K&R II Sec. 5.3 p.
             99; H&S Sec. 5.4.1 p. 93; ANSI Sec. 3.2.2.1, Sec.
             3.3.2.1, Sec. 3.3.6 .



Q2.4:   $B$=$l$G$O$J$<4X?t$N2>0z?t$G$OG[Ns$H%]%$%s%?$N@k8@$,8r49$G$-$k$N(B
        $B$+!#(B

A2.4:   $BG[Ns$O$9$0$K%]%$%s%?$K@.$j2<$,$k$N$G!"G[Ns$,<B:]$K4X?t$KEO$k$3(B
        $B$H$O$J$$!#%3%s%Q%$%i$NET9g$,$$$$$h$&$K!"G[Ns$N$h$&$K(B"$B8+$($k(B"$B%Q(B
        $B%i%a!<%?@k8@$O!"0J2<$KNc$r5s$2$k$h$&$K(B

                f(a)
                char a[];

        $B$9$Y$F%3%s%Q%$%i$K$h$C$F%]%$%s%?$H$7$F07$o$l$k!#$J$<$J$iG[Ns$,(B
        $BEO$5$l$?$H$-$K!"4X?t$,<B:]$K<u$1<h$k$N$O%]%$%s%?$G$"$k$+$i$G$"(B
        $B$k!#(B

                f(a)
                char *a;

        $B$3$NJQ49$O!"4X?t$N2>0z?t$N%Q%i%a!<%?@k8@$G$N$_M-8z$G$"$k!#$3$N(B
        $BJQ49$,5$$K?)$o$J$$$J$i;H$o$J$1$l$P$h$$!#4X?t$N5/F0$d4X?tFb$G$N(B
        $B;HMQJ}K!$K@k8@$r;w$;$k$3$H$K$h$kMxE@$h$j$b!"$=$l$,0z$-5/$3$9:.(B
        $BMp$N$[$&$,Bg$-$$$H9M$($k?M$OB?$$!#(B


             References: K&R I Sec. 5.3 p. 95, Sec. A10.1 p. 205; K&R
             II Sec. 5.3 p. 100, Sec. A8.6.3 p. 218, Sec. A10.1 p.
             226; H&S Sec. 5.4.3 p. 96; ANSI Sec. 3.5.4.3, Sec. 3.7.1,
             CT&P Sec. 3.3 pp. 33-4.



Q2.5:   $B$I$&$7$FG[Ns$OBeF~$G$-$J$$$N$K:8JUCM(B(lvalue)$B$J$N$+!#(B


A2.5:   ANSI C$B5,3J$O!VJQ992DG=$J:8JUCM(B(modifiable lvalue)$B!W$rDj5A$7$F$$(B
        $B$k!#$=$NCf$KG[Ns$OF~$C$F$$$J$$!#(B

        References: ANSI Sec. 3.2.2.1 p. 37.



Q2.6:   $B$J$<%5%V%k!<%A%s$N0z?t$H$7$FEO$5$l$?G[Ns$NBg$-$5$r(Bsizeof()$B$G$-(B
        $B$A$s$H7W;;$G$-$J$$$N$+!#(B

A2.6:   sizeof()$B$O!"%5%V%k!<%A%s$,<B:]$K<u$1<h$C$?%]%$%s%?%Q%i%a!<%?$N(B
        $BBg$-$5$rJV$9(B (Q2.4$B;2>H(B)$B!#(B



Q2.7:   $BG[Ns$H$ODj?t%]%$%s%?$K$9$.$J$$$H@bL@$7$F$/$l$k?M$,$$$?!#(B

A2.7:   $B$=$l$O$A$g$C$H$b$N$4$H$rC1=c$K9M$($9$.$G$"$k!#G[Ns$NL>A0$O!"L>(B
        $BA0$K$OBeF~$G$-$J$$$H$$$&E@$G!VDj?t!W$G$"$k$,!"(BQ2.2$B$N5DO@$H3($r(B
        $B8+$l$PG[Ns$,%]%$%s%?$G$J$$$3$H$O$O$C$-$j$9$k$@$m$&!#(B



Q2.8:   $B<B:]!"G[Ns$H%]%$%s%?$N0c$$$O!#(B

A2.8:   $BG[Ns$O<+F0E*$KNN0h$r3d$jEv$F$k!#$?$@$7JL$N>l=j$K0\$7$?$jBg$-$5(B
        $B$rJQ$($k$3$H$O$G$-$J$$!#%]%$%s%?$O3d$jEv$F$i$l$?NN0h(B($B$?$V(B
        $B$s(Bmalloc$B$r;H$C$F3NJ]$7$?NN0h(B)$B$r;X$9%"%I%l%9$rL@<(E*$KBeF~$7$J(B
        $B$1$l$P$J$i$J$$!#$=$N$+$o$j9%$-$J$h$&$KCM$rJQ$($k$3$H$,$G$-$k(B (
        $B$9$J$o$AJL$N$b$N$r;X$9$3$H$,$G$-$k(B)$B!#$^$?%a%b%j%V%m%C%/$r;X$9(B
        $B0J30$K$b?'!9$H;H$$F;$,$"$k!#B/$K$$$&G[Ns$H%]%$%s%?$,F1Ey(B(Q2.3
        $B;2>H(B)$B$K$h$j!"G[Ns$H%]%$%s%?$,F1$8$K8+$($k5!2q$,B?$$!#FC$K(Bmal-
        loc$B$K$h$j3NJ]$7$?NN0h$r;X$9%]%$%s%?$,!"$7$P$7$PK\J*$NG[Ns$N$h(B
        $B$&$K(B ($B<B:](B[]$B$r;H$C$F;2>H$9$k$3$H$,$G$-$k(B)$B07$o$l$k(B(Q2.14$B$r;2>H(B
        $B$N$3$H!#(BQ17.20$B$b;2>H$N$3$H(B)$B!#(B



Q2.9:   5["abcdef"]$B$H$$$&<0$r4^$s$@%8%g!<%/$N%3!<%I$r8+$?$3$H$,$"$k!#(B
        $B$I$&$7$F$3$N<0$,(B C$B8@8l$GJ8K!>e@5$7$$$3$H$K$J$k$N$+!#(B

A2.9:   $B%(%C!"E:;zIU$N<0$O(BC$B$G$O8r492DG=$J$N$bCN$i$J$$$N!#$3$N4qL/$J;v(B
        $B<B$O!"G[Ns$NE:;zIU$1$N%]%$%s%?$NDj5A$+$i$-$F$$$k!#$9$J$o$A!"$I(B
        $B$A$i$+$,%]%$%s%?$rI=$9<0$G!";D$j$,@0?t$G$"$k8B$j!"$I$s$J<0(Be$B$H(B
        $B0l<!<0(Ba$B$K$D$$$F$b!"(Ba[e]$B$O(B*((a)+(e))$B$HF1$8$b$N$G$"$k$H$$$&Dj5A(B
        $B$G$"$k!#(B

        $B$3$N$H$s$G$b$J$$8r492DG=@-$O!"$h$/(BC$B8@8l$K$D$$$F07$&J8>O$NCf(B
        $B$G!"8X$i$7$/;W$&$+$N$h$&$K5-=R$5$l$F$$$k$,!V9q:]Fq2r(BC$B%W%m%0%i(B
        $B%`%3%s%F%9%H!W0J30$G$OLr$KN)$?$J$$(B(Q17.13$B;2>H(B)$B!#(B

             References: ANSI Rationale Sec. 3.3.2.1 p. 41.



Q2.10:  $B;d$,;H$C$F$$$k%3%s%Q%$%i$O!"%]%$%s%?$X$N%]%$%s%?$r;H$&$Y$-$H$3(B
        $B$m$G!"Fs<!85G[Ns$r;H$&$HITK~$r$$$&!#(B

A2.10:  $BG[Ns$,%]%$%s%?$K@.$j2<$,$k$H$$$&%k!<%k$O!":F5"E*$K$O@.$jN)$?$J(B
        $B$$!#G[Ns$NG[Ns(B($BNc$($P(BC$B8@8l$K$*$1$kFs<!85G[Ns(B)$B$O!"G[Ns$X$N%]%$(B
        $B%s%?$K@.$j2<$,$k$N$G$"$C$F!"%]%$%s%?$X$N%]%$%s%?$K@.$j2<$,$k$o(B
        $B$1$G$O$J$$!#G[Ns$X$N%]%$%s%?$O!":.Mp$r>7$/$+$i!"Cm0U$7$F07$o$J(B
        $B$1$l$P$J$i$J$$(B($B:.Mp$O(Bpcc$B$N4v$D$+$N%P!<%8%g%s$H!"$=$&$$$&(Bpcc$B$+(B
        $B$iGI@8$7$?(Blint$B$,B?<!85G[Ns$rB?CJ$N%]%$%s%?$H$7$F<u$1IU$1$k$3$H(B
        $B$GA}D9$5$l$F$$$k(B)$B!#$b$7(B2$B<!85G[Ns$r0J2<$N4X?t$KEO$9$H(B

                int array[NROWS][NCOLUMNS];
                f(array);

        $B4X?t$N@k8@$O0J2<$N$I$A$i$+$G$J$$$H$$$1$J$$!#(B

                f(int a[][NCOLUMS]) {...}

        $B$"$k$$$O(B

                f(int (*ap)[NCOLUMS]) {...}  /* ap$B$OG[Ns$X$N%]%$%s%?(B */

        $B:G=i$N@k8@$G$O!"%3%s%Q%$%i$,%Q%i%a!<%?$N!VG[Ns$NG[Ns!W$r!VG[Ns(B
        $B$X$N%]%$%s%?!W$X0EL[$N=q$-49$($r9T$&!#Fs$DL\$NDj5A$G$O!"%]%$%s(B
        $B%?$NDj5A$OL@<(E*$G$"$k!#8F$P$l$kB&$N4X?t$OG[NsJ,$NNN0h$r<h$k$o(B
        $B$1$G$O$J$$$N$G!"G[NsA4BN$NBg$-$5$rCN$kI,MW$O$J$$!#Ns$N?t(B
        $B!V(BNROWS$B!W$O>JN,$9$k$3$H$,$G$-$k!#G[Ns$N(B"$B7A(B"$B$OBg;v$G$"$k$+$i9T(B
        $B$N?t!V(BNCOLUMS$B!W$r(B(3$B<!850J>e$NG[Ns$N>l9g$O:G=i$N<!85$r$N$>$/$9(B
        $B$Y$F$N<!85$NBg$-$5$r4^$a$F(B)$B;XDj$7$J$1$l$P$J$i$J$$!#(B

        $B$b$7%]%$%s%?$X$N%]%$%s%?$r<u$1IU$1$k$H4X?t$,@k8@$7$F$$$k$H$-$K(B
        $B$O!"D>@\Fs<!85G[Ns$rEO$9$3$H$OB?J,8m$j$G$"$k!#(B

             References: K&R I Sec. 5.10 p. 110; K&R II Sec. 5.9 p.
             113.



Q2.11:  $B%3%s%Q%$%k;~$K(B"$BI}(B"$B$,L$Dj$N(B2$B<!85G[Ns$r0z?t$H$9$k4X?t$O$I$&$d$C(B
        $B$F=q$1$P$h$$$+!#(B

A2.11:  $B$3$l$O7k9=Fq$7$$!#0l$D$O(B[0][0]$BMWAG$X$N%]%$%s%?$r!"(B2$B$D$N<!85$N(B
        $B$=$l$>$l$NBg$-$5$H0l=o$KEO$7$FG[Ns$NE:;zIU$1$r(B"$B<j$G(B"$B??;w$kJ}K!(B
        $B$,$"$k!#(B

                f2(aryp, nrown, ncolumns)
                int *aryp;
                int nrows, ncolumns;
                { ... ary[i][j] $B$O<B:]$K$O(Baryp[i * ncolumns + j] ... }

        $B$3$N4X?t$O(BQ2.10$B$NG[Ns$r;H$C$F0J2<$N$h$&$K8F$V$3$H$b$G$-$k!#(B

                f2(&array[0][0], NROWS, NCOLUMNS);

        $B$7$+$7$J$,$i$3$N$h$&$JJ}K!$K$h$C$F(B"$B<j$G(B"$BB?<!85$NG[Ns$NE:;zIU$1(B
        $B$r$9$k%W%m%0%i%`$O(BANSI C$B5,3J$K87L)$K$O=>$C$F$$$J$$$3$H$KCm0U$9(B
        $B$k$3$H!#(B x > NCOLUMNS$B$N>l9g$K(B (&array[0][0])[x]$B$K%"%/%;%9$7$?(B
        $B$H$-$NF0:n$ODj5A$5$l$F$$$J$$!#(B

        gcc$B$r;H$($P!"4X?t$N0z?t$r;H$C$F%m!<%+%k$NG[Ns$,$"$kBg$-$5$r;}(B
        $B$D$H@k8@$9$k$3$H$,$G$-$k!#$7$+$7$3$l$OI8=`$G$O$J$$3HD%5!G=$G$"(B
        $B$k!#(B

        Q2.15$B$b;2>H$N$3$H!#(B



Q2.12:  $BG[Ns$X$N%]%$%s%?$r$I$&$d$C$F@k8@$9$k$N$+!#(B

A2.12:  $B$?$$$F$$$O!"$=$NI,MW$O$J$$!#$J$K$2$J$/G[Ns$X$N%]%$%s%?$H$$$&$H(B
        $B$-$O!"$?$$$F$$G[Ns$N:G=i$NMWAG$X$N%]%$%s%?$N$3$H$r$$$C$F$$$k$N(B
        $B$G$"$k!#(B

        $BG[Ns$X$N%]%$%s%?$G$O$J$/!"G[Ns$NMWAG$X$N%]%$%s%?$r;H$&$3$H$r9M(B
        $B$($k$3$H!#7?(BT$B$NG[Ns$O7?(BT$B$X$N%]%$%s%?$K@.$j2<$,$k(B(Q2.3$B$r;2>H(B)$B!#(B
        $B$3$l$OET9g$,$h$$!#$J$<$J$i7k2L$H$7$F$G$-$k%]%$%s%?$r;H$C$FE:;z(B
        $B$D$-$G;2>H$7$?$j!"@0?t$r2C$($k$3$H$GG[Ns$N3FMWAG$K%"%/%;%9$7$?(B
        $B$j$G$-$k!#$3$l$KBP$7$F!"K\Ev$NG[Ns$X$N%]%$%s%?$O!"E:;z$D$-$G;2(B
        $B>H$7$?$j@0?t$r2C$($k$H!"G[NsA4BN$rHt$S1[$7$F$7$^$&!#$3$l$G$O$;(B
        $B$$$<$$G[Ns$NG[Ns$r07$&$H$-$K$7$+LrN)$?$J$$(B($B>e$N(BQ2.10$B$r;2>H(B)$B!#(B

        $BK\Ev$KG[Ns$=$N$b$N$X$N%]%$%s%?$,I,MW$J>l9g$O!V(Bint(*ap)[N];$B!W$N(B
        $B$h$&$JI=8=$r;H$&!#$3$3$G(BN$B$OG[Ns$N%5%$%:$rI=$9(B(Q10.3$B$r;2>H(B)$B!#G[(B
        $BNs$NBg$-$5$,$o$+$i$J$$>l9g!"(BN$B$r>JN,$9$k$3$H$,$G$-$k!#$7$+$77k(B
        $B2L$H$7$FF@$i$l$k!VBg$-$5$,L$CN$NG[Ns$X$N%]%$%s%?!W$OLr$KN)$?$J(B
        $B$$!#(B



Q2.13:  $BG[Ns$r;2>H$9$k$3$H$O%]%$%s%?$K@.$j2<$,$k$3$H$r9M$($l$P!"0J2<$N(B
        $B@k8@$r9M$($?$H$-$K!"(B

                int array[NROWS][NCOLUMNS];

        array$B$H(B&array$B$N0c$$$O!#(B

A2.13:  ANSI/ISO C$B$G$O(B&array$B$O!V(BT$B$NG[Ns$X$N%]%$%s%?!W$r;:$_=P$9!#$3$l(B
        $B$OG[NsA4BN$r;X$9(B (Q10.4$B$b;2>H$N$3$H(B)$B!#(BANCI C$B$,CB@8$9$kA0(B
        $B$O!"(Barray$B$NA0$K(B&$B$rIU$1$k$3$H$O!"$?$$$F$$7Y9p$r>7$-!"$?$$$F$$L5(B
        $B;k$5$l$?!#$9$Y$F$N(BC$B%3%s%Q%$%i$GG[Ns$X$N%-%c%9%H$N$J$$;2>H$O%](B
        $B%$%s%?$r;:$_=P$9!#$3$N%]%$%s%?$O(BT$B$X$N%]%$%s%?$GG[Ns$N:G=i$NMW(B
        $BAG$r;X$9(B(Q2.3$B$b;2>H$N$3$H(B)$B!#(B



Q2.14:  $BB?<!85$NG[Ns$rF0E*$K3d$jIU$1$k$N$O$I$&$7$?$i$h$$$+(B

A2.14:  $B$?$$$F$$%]%$%s%?$NG[Ns$r3d$jIU$1$F!"$=$l$>$l$N%]%$%s%?$rF0E*$K(B
        $B3d$jIU$1$?(B"$BNs(B"$B$K=i4|2=$9$k$N$,0lHV$N2r7h:v$G$"$k!#0J2<$KFs<!85(B
        $BG[Ns$NNc$r5s$2$k!#(B

                int **array1 = (int **)malloc(nrows * sizeof(int *));
                for (i = 0; i < nrows; i++)
                        array1[i] = (int *)malloc(ncolumns * sizeof(int));

        $B$b$A$m$s(B"$BK\J*$N(B"$B%3!<%I$G$O(Bmalloc$B$O@5$7$/@k8@$7$J$1$l$P$$$1$J$$(B
        $B$7!"3FLa$jCM$N%A%'%C%/$bI,MW$G$"$k!#(B

        $BG[Ns$NCf?H$r%a%b%j>eO"B3$K$9$k$3$H$b$G$-$k!#$?$@$7$3$&$9$k$H!"(B
        $B8e$G0l$D0l$D$NNs$r:F3dIU$9$k$N$,LLE]$K$J$k!#0J2<$N$h$&$J!"L@<((B
        $BE*$J!"$A$g$C$H$7$?%]%$%s%?7W;;$,I,MW$H$J$k!#(B

                int **array2 = (int **)malloc(nrows * sizeof(int *));
                array2[0] = (int *)malloc(nrows * ncolumns * sizeof(int));
                for (i = 0; i < nrows; i++)
                        array2[i] = array2[0] + i * ncolumns;

        $B$I$A$i$rA*Br$7$F$b!"F0E*$K3d$jIU$1$?G[Ns$N3FMWAG$OIaDL$NG[Ns$N(B
        $B$h$&$KE:$(;z$G%"%/%;%9$G$-$k!#(B

        $B$b$7>e$N$h$&$JFs=E4V@\%"%/%;%9J}K!$,$J$s$i$+$NM}M3$G<u$1F~$l$i(B
        $B$l$J$$$J$i!"0l$D$NF0E*G[CV$N0l<!85G[Ns$GFs<!85G[Ns$r%7%_%e%l!<(B
        $B%H$9$k$3$H$,$G$-$k!#(B

                int *array3 = (int *)malloc(nrows * ncolumns * sizeof(int));

        $B$7$+$7E:;z$N7W;;$r<+J,$G9T$o$J$1$l$P$J$i$J$$!"$9$J$o$A(Bi,j$BHVL\(B
        $B$NMWAG$X$N%"%/%;%9$O(B array3[i * ncolumns + j]$B$H$7$J$1$l$P$J$i(B
        $B$J$$(B($B%^%/%m$r;H$($PL@<(E*$J7W;;$r1#$9$3$H$,$G$-$k!#$7$+$7%^%/(B
        $B%m$r;H$($P$+$C$3$d%3%s%^$r;H$&I,MW$,$"$k$N$GB?<!85G[Ns$X$N%"%/(B
        $B%;%9$N$h$&$K$O8+$($J$/$J$k(B)$B!#(B

        $B:G8e$KG[Ns$X$N%]%$%s%?$r;H$&J}K!$r>R2p$9$k!#(B

                     int (*array4)[NCOLUMNS] =
                     (int (*)[NCOLUMNS])malloc(nrows * sizeof(*array4));

        $B$1$l$I!"$3$N9=J8$OFI$`?M$K62I]46$rM?$($k$7!"%3%s%Q%$%k;~$K0l$D(B
        $B$N<!85$r=|$/$9$Y$F$N<!85$,3NDj$7$F$$$J$1$l$P$J$i$J$$!#$I$NJ}K!(B
        $B$r$H$k$K$7$F$b!"I,MW$,$J$/$J$C$?$iG[Ns$r2rJ|$9$k$3$H$r!"21$($F(B
        $B$*$+$J$1$l$P$J$i$J$$(B($B$=$l$O!"2?CJ$+$N<jB3$-$rF'$^$J$1$l$P$J$i(B
        $B$J$$$+$b$7$l$J$$(B)$B!#$^$?G[Ns$rF0E*$K3d$jIU$1$FB>$N4X?t$KEO$9:](B
        $B$K!"EO$9@h$N4X?t$,!"@EE*$K3d$jIU$1$?IaDL$NG[Ns$r0z?t$H$7$F<u$1(B
        $B$H$k>l9g$OFC$KCm0U$,I,MW$G$"$k(B($B2<$N(BQ2.15$B$H(BQ2.10$B$r;2>H$N$3$H(B)$B!#(B



Q2.15:  $B4X?t$N0z?t$H$7$FG[Ns$rEO$9$H$-$K!"@EE*$K3NJ]$5$l$?G[Ns$bF0E*$K(B
        $B3NJ]$5$l$?G[Ns$b<u$1IU$1$k$h$&$K$9$k$K$O$I$&$7$?$i$h$$$+!#(B

A2.15:  $BM#0l$N40A4$J2r$H$$$&$N$OB8:_$7$J$$!#0J2<$N@k8@$,$"$C$F!"(B

                int array[NROWS][NCOLUMNS];
                int **array1;
                int **array2;
                int *array3;
                int (*array4)[NCOLUMNS];


        Q2.10$B$H(BQ2.14$B$HF1$8$K=i4|2=$9$k$H$9$k!#$^$?4X?t$r0J2<$N$h$&$K@k(B
        $B8@$9$k!#(B

                f1(int a[][NCOLUMNS], int m, int n);
                f2(int *aryp, int nrows, int ncolumns);
                f3(int **pp, int m, int n);

        (Q2.10$B$H(BQ2.11$B$r;2>H$N$3$H(B)$B0J2<$NNc$O;W$C$?$H$*$j$KF0$/!#(B

                f1(array, NROWS, NCOLUMNS);
                f1(array4, nrows, NCOLUMNS);
                f2(&array[0][0], NROWS, NCOLUMNS);
                f2(*array2, nrows, ncolumns);
                f2(array3, nrows, ncolumns);
                f2(*array4, nrows, NCOLUMNS);
                f3(array1, nrows, ncolumns);
                f3(array2, nrows, ncolumns);

        $B0J2<$N(B2$B$D$NNc$bB?J,$&$^$/$$$/!#$?$@$72x$7$$%-%c%9%H$,4^$^$l$F(B
        $B$$$k$7!"F0E*$K3d$jEv$F$?(Bncolumns$B$,!"@EE*$K3d$jEv$F$?(BNCOLUMNS$B$H(B
        $B0lCW$9$k$H$-$7$+$&$^$/F0$+$J$$!#(B

                f1((int (*)[NCOLUMNS])(*array2), nrows, ncolumns);
                f1((int (*)[NCOLUMNS])array3, nrows, ncolumns);

        &array[0][0]$B$r(Bf2$B$KEO$9$N$O87L)$K$O5,3J$K=`5r$7$F$$$J$$$3$H$KCm(B
        $B0U$9$k$3$H!#(B Q2.11$B$r;2>H!#(B

        $B$b$7$J$<>e5-$N4X?t8F$S=P$7$,$9$Y$F$&$^$/$$$/$+$H$$$&$3$H$H!"$J(B
        $B$<>e5-$N$h$&$K5-=R$5$l$?$+$,$o$+$C$F$$$F!"1L$l$F$$$kAH$_9g$o$;(B
        $B$,$J$<$&$^$/$$$+$J$$$+$b$o$+$C$F$$$k$N$J$i!"(BC$B8@8l$NG[Ns$H%]%$(B
        $B%s%?$K$D$$$F$NCN<1$O(B($B$[$+$NJ,Ln$NCN<1$b(B)$B7k9=$$$$@~$$$C$F$$$k$H(B
        $B;W$C$F$$$$$@$m$&!#(B



Q2.16:  $B$[$i$3$N%H%j%C%/!#2<$N$h$&$K=q$1$P(B

                int realarray[10];
                int **array = &realarray[-1];

        "array"$B$O(B1$B%9%?!<%H$NG[Ns$N$h$&$K;H$($k!#(B

A2.16:  $B$3$N%F%/%K%C%/$OL%NOE*$@$,(B(NUMERICAL RECIPES IN C$B$N8E$$HG$G$b(B
        $B;H$o$l$F$$$k(B)$B!"87L)$K$$$($P(BC$B8@8l$N5,3J$K=>$C$F$$$J$$!#%]%$%s%?(B
        $B1i;;$O!"0lEY$K3d$j?6$i$l$?NN0h$H!"2>A[E*$J(B"$B=*C<(B"$B$r1[$($?(B1$B$D$a(B
        $B$NMWAG$K$@$1Dj5A$5$l$F$$$F!"$=$l0J30$G$OL$Dj5A$G$"$k!#$3$N$3$H(B
        $B$O!"$?$H$(%]%$%s%?$r;2>H$K;H$C$F$$$J$$$H$7$F$b$"$F$O$^$k!#>e$N(B
        $B%3!<%I$O%*%U%;%C%H$r0z$$$?;~$K!"$H$s$G$b$J$$%"%I%l%9$r:n$j=P$7(B
        $B$F(B($B$?$V$s%"%I%l%9$,!V$0$k$C$H2s$C$F!W%a%b%j%;%0%a%s%H$N@hF,$r(B
        $B1[$($FB>$N%;%0%a%s%H$H=E$J$k$+$i$@$m$&(B)$B$&$^$/$$$+$J$/$J$k2DG=(B
        $B@-$,$"$k!#(B

             References: ANSI Sec. 3.3.6 p. 48, Rationale Sec. 3.2.2.3
             p. 38; K&R II Sec. 5.3 p. 100, Sec. 5.4 pp. 102-3, Sec.
             A7.7 pp. 205-6.



Q2.17:  $B%]%$%s%?$r4X?t$KEO$7$F!"$=$N4X?t$NCf$G%]%$%s%?$N=i4|2=$r9T$J$&(B
        $B$3$H$K$7$?!#(B

          main()
          {
                  ...
                  int **ip;
                  f(ip);
                  ...
          }

          void f(ip)
          int **ip;
          {
                  static int dummy = 5;
                  ip = &dummy;
          }

        $B$1$l$I!"8F$s$@B&$N%]%$%s%?$NCM$OJQ$o$i$J$+$C$?!#(B

A2.17:  $B4X?t$O%]%$%s%?$r=i4|2=$7$h$&$H$7$F$$$k$N$+!"$=$l$H$b%]%$%s%?$,(B
        $B;X$9@h$r=i4|2=$7$h$&$H$7$F$$$k$N$+(B? C$B8@8l$N0z?t$OCMEO$7$G$"$k(B
        $B$3$H$r$*K:$l$J$/!#8F$P$l$?B&$N4X?t$O!"%]%$%s%?$N%3%T!<$rJQ99$9(B
        $B$k$@$1$G$"$k!#$*K>$_$N7k2L$rF@$k$K$O!"%]%$%s%?$N%"%I%l%9$rEO$9(B
        $B$+(B ($B4X?t$O%]%$%s%?$X$N%]%$%s%?$r<u$1$H$k$3$H$K$J$k(B)$B!"4X?t$,%](B
        $B%$%s%?$rJV$9$h$&$K$9$k!#!#(B



Q2.18:  char$B$N%]%$%s%?$,$"$C$F!"$=$N%]%$%s%?$,$?$^$?$^(B($BO"B3$9$k(B)int$B$r(B
        $B;X$7$F$$$?!#(B int$B$N<!$X%]%$%s%?$r?J$a$?$$!#$J$<0J2<$N<0$G$O$&$^(B
        $B$/$$$+$J$$$N$+!#(B

        ((int *)p)++


A2.18:  C$B8@8l$G%-%c%9%H$O!V%S%C%H$,JL$N7?$r;}$C$F$$$k$U$j$r$7$F!"$=$&(B
        $B$$$&Iw$K07$C$F$d$m$&!W$H$$$&$3$H$r0UL#$7$F$$$J$$!#%-%c%9%H$OJQ(B
        $B491i;;;R$G$"$C$F!"$=$l$O1&JUCM$r@8$_$@$9$HDj5A$5$l$F$$$k!#1&JU(B
        $BCM$G$"$k$H$9$k$J$i!"BeF~$9$k$3$H$b(B++$B$GB-$7;;$9$k$3$H$b$G$-$J$$(B
        $B$3$H$K$J$k(B(pcc$B$+$iGI@8$7$?%3%s%Q%$%i$d(Bgcc$B$N3HD%5!G=$,>e$N$h$&(B
        $B$J<0$r<u$1IU$1$k$3$H$ONc30$G$"$k(B)$B!#K>$_$I$*$j$N7k2L$rF@$k$K(B
        $B$O!"0J2<$N$h$&$K=q$+$J$1$l$P$J$i$J$$!#(B

        p = (char *)((int *)p + 1);

        $B$"$k$$$OC1$K(B p += sizeof(int);

             References: ANSI Sec. 3.3.4, Rationale Sec. 3.3.2.4 p.
             43.



Q2.19:  $B;2>H8F$S=P$7$K;H$&$?$a$KHFMQ$N%]%$%s%?$r4X?t$KEO$9$N$K!"(Bvoid
        **$B$r;H$&$3$H$,$G$-$k$+!#(B

A2.19:  $B0\?"@-$^$G9M$l$PIT2DG=$G$"$k!#(BC$B8@8l$K$OHFMQ$N%]%$%s%?$X$N%]%$(B
        $B%s%?7?$OB8:_$7$J$$!#(Bvoid *$B$,HFMQ$N%]%$%s%?$H$7$F?6$kIq$&$N$O!"(B
        $BB>$N7?$N%]%$%s%?$r(B void *$B$K@_Dj$7$?$j;2>H$9$k$H$-$K!"<+F0E*$K(B
        $BJQ49$,9T$o$l$k$+$i$G$"$k!#(B void *$B0J30$N2?$+$r;X$7$F$$$k(Bvoid **
        $B$r;H$C$F4V@\;2>H$7$h$&$H$9$k$H!"$3$NJQ49$O<B9T$G$-$J$$(B($B1#$l$?(B
        $B@5$7$$%]%$%s%?$N7?$,$o$+$i$J$$(B)$B!#(B




3.$B5-21NN0h3d$jEv$F(B

Q3.1:   $B0J2<$N%W%m%0%i%`$NCGJR$O$J$<F0$+$J$$$N$+!#(B

                char *answer;
                printf("$B$J$K$+F~NO$7$F$/$@$5$$!#(B:\n");
                gets(answer);
                printf("$B$"$J$?$O(B %s $B$HF~NO$7$^$7$?(B\n", answer);


A3.1:   $B%]%$%s%?JQ?t!V(Banswer$B!W$O1~Ez$rCy$($k>l=j$H$7$F4X?t(Bgets$B$KEO$5$l(B
        $B$k$,!"$=$N;~E@$G$O(Banswer$B$OM-8z$JNN0h$r;X$7$F$$$J$$!#$9$J$o$A%](B
        $B%$%s%?!<!V(Banswer$B!W$O!"$I$3$r;X$7$F$$$k$N$+$o$+$i$J$$(B($B%m!<%+%k(B
        $B$JJQ?t$O=i4|2=$5$l$k$3$H$O$J$$$7!"$?$$$F$$%4%_$,F~$C$F$$$k!#(B
        $B!V(Banswer$B!W$,%L%k%]%$%s%?$H$7$F;O$^$k$3$H$5$(J]>Z$5$l$F$$$J(B
        $B$$!#(BQ17.1$B$r;2>H$N$3$H(B)$B!#(B

        $B<ALd$N%W%m%0%i%`$r=$@5$9$k0lHV$d$5$7$$J}K!$O!"%]%$%s%?$NBe$j$K(B
        $B%m!<%+%k$NG[Ns$r;H$C$F!"%3%s%Q%$%i$KNN0h$N3dEv$F$rG$$;$k$3$H$G(B
        $B$"$k!#(B

                #include <string.h>

                char answer[100], *p;
                printf("$B$J$K$+F~NO$7$F$/$@$5$$!#(B:\n");
                fgets(answer, sizeof(answer), stdin);
                if ((p = strchr(answer, '\n')) != NULL)
                        *p = '\0';
                printf("$B$"$J$?$O(B %s $B$HF~NO$7$^$7$?(B\n", answer);


        $B$3$NNc$O(Bgets$B$NBe$j$K(Bfgets$B$r;H$C$F(B($B>o$K$h$$9M$($G$"$k!#(BQ11.6$B$r(B
        $B;2>H(B)$BG[Ns$NBg$-$5$r;XDj$9$k$3$H$r2DG=$K$7!"%f!<%6!<$,D9$9$.$k(B
        $B9T$rF~NO$7$F$bG[Ns$N=*$o$j$r>e=q$-$7$J$$$h$&$K$7$F$$$k$3$H$KCm(B
        $B0U(B ($B;DG0$J$,$i$3$NNc$G$O(Bfgets$B$O(Bgets$B$H$O0c$C$F!"8e$m$N2~9T$r<+(B
        $BF0E*$K$O:o=|$7$J$$(B)$B!#(B malloc$B$r;H$C$FJVEzMQ$N%P%C%U%!$r3d$jEv$F(B
        $B$k$3$H$b$G$-$k!#(B




Q3.2:   strcat$B$,$&$^$/F0$+$J$$!#0J2<$N%W%m%0%i%`$r=q$$$?$i!"(B

                char *s1 = "Hello, ";
                char *s2 = "world!";
                char *s3 = strcat(s1, s2);

        $BJQ$JEz$($,JV$C$F$-$?!#(B

A3.2:   $B$3$3$G$b!"O"7k$7$?7k2L$rCy$($kNN0h$,$&$^$/3NJ]$5$l$F$$$J$$!#(BC
        $B8@8l$K$O!"<+F0E*$K4IM}$5$l$kJ8;zNs7?$O$J$$!#%=!<%9%3!<%I$GL@<((B
        $BE*$KI=$5$l$?%*%V%8%'%/%H$KNN0h$r3d$jEv$F$k$@$1$G$"$k(B("$BJ8;zNs(B"
        $B$K$D$$$F$O(B char$B$NG[Ns$H(B"$B$G$/$/$i$l$?J8;zNs$r4^$`(B)$B!#%W%m%0%i%^(B
        $B$O!"J8;zNs$NO"7k$N$h$&$J<B9T;~$NA`:n$N7k2L$KBP$7$F==J,$JNN0h(B
        $B$r!"G[Ns$rDj5A$7$?$j!"(B malloc$B$r5/F0$9$k$3$H$GL@<(E*$K3NJ]$7$J(B
        $B$1$l$P$J$i$J$$(B(Q17.20$B$r;2>H$N$3$H(B)$B!#(B

        strcat$B$O!"NN0h$N3d$jEv$F$r9T$o$J$$!#FsHVL\$NJ8;zNs$O:G=i$NJ8;z(B
        $BNs$K!"$=$N>l$GO"7k$5$l$k!#0l$D$N2r7hJ}K!$O!":G=i$NJ8;zNs$r==J,(B
        $B$JBg$-$5$r;}$DG[Ns$H$7$F@k8@$9$k$3$H$G$"$k!#(B

                char s1[20] = "Hello, ";


        strcat$B$OBh0l0z?t$rJV$9$N$G(Bs3$B$OM>7W$G$"$k!#(B

                Reference: CT&P Sec. 3.2 p. 32.




Q3.3:   $B$1$l$I(Bstrcat$B$N(Bman$B$K$h$k$H!"(Bstrcat$B$O0z?t$H$7$FFs$D$N(Bchar$B$X$N%](B
        $B%$%s%?$r<h$k$3$H$J$C$F$$$k!#NN0h$N3d$jEv$F$,I,MW$G$"$k$H$I$&$d(B
        $B$C$FCN$k$3$H$,$G$-$k$N$+!#(B

A3.3:   $B0lHL$K%]%$%s%?$r;H$&$H$-$O!"$$$D$bNN0h$N3d$jEv$F$N$3$H$r9M$($F(B
        $B$*$+$J$1$l$P$J$i$J$$!#>/$J$/$H$b%3%s%Q%$%i$,Be$o$j$K$d$C$F$/$l(B
        $B$k$3$H$r3NG'$7$F$*$+$J$1$l$P$J$i$J$$!#%i%$%V%i%j$N%I%-%e%a%s%H(B
        $B$K5-21NN0h$N3d$jEv$F$K$D$$$F$O$C$-$j5-=R$7$F$$$J$1$l$P!"3d$jEv(B
        $B$F$OIaDL$O;H$&?M$N@UG$$G$"$k!#(B

        UNIX$B7A<0$N(Bman$B$N@hF,$K$"$kMWLs$N>O$O!"8m2r$r>7$/@bL@$r$7$F$$(B
        $B$k!#$=$3$K:\$C$F$$$k%3!<%I$N0lIt$O!";H$$J}$H$$$&$h$j$O!"4X?t$N(B
        $B<BAu$G;H$o$l$k4X?tDj5A$K6a$$!#FC$K(B($B9=B$BN$dJ8;zNs$X$N(B)$B%]%$%s%?(B
        $B$r07$&4X?t$NB?$/$O$J$s$+$7$i$N%*%V%8%'%/%H(B($B9=B$BN$+G[Ns$X$N!D(B
        Q2.3$B$d(BQ2.4$B$r;2>H(B)$B$X$N%"%I%l%9$r0z?t$K5/F0$5$l$k!#$[$+$K$h$/$"(B
        $B$kNc$O(Bstat()$B$G$"$k!#(B



Q3.4:   $BJ8;zNs$rJV$9(B($B$3$H$K$J$C$F$$$k(B)$B4X?t$,$"$k!#$1$l$I8F$s$@B&$N4X?t(B
        $B$KJV$C$F$/$k$H!"JV$C$F$-$?J8;zNs$K$O%4%_$,F~$C$F$$$k!#(B

A3.4:   $B4X?t$,JV$9J8;zNs$r3JG<$9$kNN0h$,@5$7$/3d$jEv$F$i$l$F$$$k$3$H$r(B
        $B3NG'$9$k$3$H!#JV$5$l$?%]%$%s%?$O@EE*$K3d$jEv$F$i$l$?%P%C%U%!(B
        $B$+!"8F$s$@B&$N4X?t$+$iEO$5$l$?%P%C%U%!$G$"$C$F!"8F$P$l$?4X?t$N(B
        $B%m!<%+%k$J(B($B<+F0JQ?t$N(B)$BG[Ns$G$"$C$F$O$J$i$J$$!#$D$^$j0J2<$N$h$&(B
        $B$J$3$H$O@dBP$K$d$C$F$O$$$1$J$$!#(B

                char *f()
                {
                    char buf[10];
                    /* ... */
                    return buf;
                }

        $B=$@5$9$kJ}K!$N$R$H$D$O!"%P%C%U%!$r0J2<$N$h$&$K@k8@$9$k$3$H$G$"(B
        $B$k(B ($B$3$l$b!"(Bf()$B$,:F5"E*$K5/F0$5$l$k>l9g$d!"La$jCM$,F1;~$KJ#?t(B
        $B$N2U=j$GI,MW$J>l9g$K$&$^$/9T$+$J$$$3$H$r9M$($k$HIT==J,$G$"(B
        $B$k(B)$B!#(B

                static char buf[10];

        Q17.5$B$b;2>H$N$3$H!#(B



Q3.5:   malloc$B$,JV$7$?CM$r3NJ]$7$?%G!<%?7?$N%]%$%s%?$KCm0U?<$/%-%c%9%H(B
        $B$7$F$$$k%3!<%I$r$?$^$K8+$k$N$O$J$<$+!#(B


A3.5:   ANSI/ISO$B5,3J$N(BC$B8@8l$,(Bvoid *$B$H$$$&HFMQ$N%]%$%s%?7?$rF3F~$9$k$^(B
        $B$G$O!"8_49@-$N$J$$%]%$%s%?7?$N4V$GBeF~$r$9$k$H$-$K7Y9p$rL[$i$;(B
        $B$k$N$K$3$&$7$?%-%c%9%H$,I,MW$H$J$k$3$H$,$h$/$"$C$?!#(B (ANSI/ISO
        $B5,3J$N(BC$B$G$O!"$3$&$7$?%-%c%9%H$OI,MW$J$$!#(B)



Q3.6:   $BF0E*$K3d$jEv$F$?5-21NN0h$O2rJ|$7$?8e$K$O;H$($J$$$M!#(B

A3.6:   $B;H$($J$$!#(Bmalloc$B$N@N$N2r@b$K$O2rJ|$5$l$?NN0h$O!V2u$5$l$:$K;D$C(B
        $B$F$$$k!W$H5-=R$7$F$"$k$b$N$b$"$C$?!#$3$N$&$+$D$JJ]>Z$O0lHLE*$K(B
        $B$J$k$3$H$O$J$/!"(B ANSI$B$G$O!"$3$N$h$&$J$3$H$rJ]>Z$9$k$3$H$OMW5a(B
        $B$5$l$F$$$J$$!#(B

        $B0U<1$7$F2rJ|$7$?NN0h$NCf?H$r;H$&%W%m%0%i%^$O>/$J$$!#$1$l$I6vA3(B
        $B;H$C$F$7$^$&$3$H$O$h$/$"$k!#0l=E%j%s%/$N%j%9%H$r2rJ|$9$k0J2<(B
        $B$N(B($B@5$7$$(B)$B%3!<%I$r9M$($F$_$h$&!#(B

                struct list *listp, *nextp;
                for(listp = base; listp != NULL; listp = nextp) {
                     nextp = listp->next;
                     free((char *)listp);
                }

        $B0l;~JQ?t$N(Bnextp$B$r;H$&$3$H$J$/(Blistp = listp->next$B$r;H$C$?$H$9$l(B
        $B$P$I$&$J$C$?$+9M$($F$_$k$3$H!#(B

                References: ANSI Rationale Sec. 4.10.3.2 p. 102; CT&P Sec. 7.10
                p. 95.



Q3.7:   free()$B$O!"$I$&$d$C$F2?%P%$%H2rJ|$9$k$+$rCN$k$N$+!#(B

A3.7:   malloc/free$B%Q%C%1!<%8$O!"%a%b%j$N%V%m%C%/$r3d$jIU$1$F!"$=$N%V(B
        $B%m%C%/$N@hF,%"%I%l%9$rJV$9!#$=$N;~$K!"%V%m%C%/$N%5%$%:$r5-21$9(B
        $B$k!#$h$C$F2rJ|$9$k$H$-$K(Bfree$B$K;W$$=P$5$;$kI,MW$O$J$$!#(B



Q3.8:   $B$@$C$?$i3d$jEv$F$?NN0h$NBg$-$5$r(Bmalloc$B$KJ9$/$3$H$,$G$-$k$N$+!#(B

A3.8:   $B0\?"@-$N9b$$J}K!$O$J$$!#(B



Q3.9:   $BF0E*$K3d$jEv$F$?%*%V%8%'%/%H$X$N%]%$%s%?$r4^$`9=B$BN$r3d$jEv$F(B
        $B$F$$$k!#9=B$BN$r2rJ|$9$kA0$K!"9=B$BN$,4^$`%]%$%s%?$N@h$N%*%V%8(B
        $B%'%/%H$rA4It2rJ|$7$J$1$l$P$J$i$J$$$N$+!#(B

A3.9:   $B$=$N$H$*$j!#0lHL$K(Bmalloc$B$,JV$7$F$-$?%]%$%s%?$r(B($B2rJ|$9$k$H$7$?(B
        $B$i(B)$B$=$l$>$l0lEY$@$1(Bfree$B$KEO$9$7$/$_$rMQ0U$7$J$1$l$P$$$1$J$$!#(B



Q3.10:  $BBgNL$N5-21NN0h$r(Bmalloc$B$7$F(Bfree$B$7$F$^$o$k%W%m%0%i%`$,$"$k!#$1$l(B
        $B$I!"%a%b%j$N;HMQ>u67$r$_$k$H(B(ps$B$G8+$($kCM$K$h$k$H(B)$BNN0h$,La$C$F(B
        $B$-$?$h$&$K$O8+$($J$$!#(B

A3.10:  $B$?$$$F$$$N(Bmalloc/free$B$N<BAu$O!"2rJ|$5$l$?%a%b%j$r(BO/S$B$K(B(O/S$B$,$"(B
        $B$C$?$H$7$F(B)$BJV$5$J$$!#8e$+$i(Bmalloc$B$,8F$S=P$5$l$?$H$-$N$?$a$K<h(B
        $B$C$F$*$/!#(B



Q3.11:  $B%W%m%0%i%`$,=*N;$9$kA0$K!"3NJ]$7$?%a%b%j$r2rJ|$7$J$1$l$P$J$i$J(B
        $B$$$+!#(B

A3.11:  $B$=$NI,MW$O$J$$!#$^$H$b$J%*%Z%l!<%F%#%s%0%7%9%F%`$J$i$-$C$H%W%m(B
        $B%0%i%`$,=*N;$7$?;~E@$G$9$Y$F$N%a%b%j$r<h$jJV$9$@$m$&!#$K$b$+$+(B
        $B$o$i$:!"8D?M8~$1%3%s%T%e!<%?!<(B(PC)$B$NCf$K$O%a%b%j$r<h$jLa$9$3$H(B
        $B$,3N<B$K$O$G$-$J$$$b$N$b$"$k$h$&$G$"$k!#(BANSI/ISO C$B5,3J$+$i7kO@(B
        $B$D$1$i$l$k$3$H$O!"2rJ|$7$F$/$l$k$+$I$&$+$O!V<BAu$NIJ<A$,$I$l$/(B
        $B$i$$9b$$$+$K$h$k!W$H$$$&$3$H$@$1$G$"$k!#(B

                References: ANSI Sec. 4.10.3.2 .




Q3.12:  realloc()$B$N:G=i$N0z?t$K%L%k%]%$%s%?$r;H$&$3$H$O5v$5$l$F$$$k$N(B
        $B$+!#$I$&$7$F$=$s$J$3$H$r$9$k$N$+!#(B

A3.12:  ANSI C$B$O$3$N;HMQJ}K!$r5v$7$F$$$k(B($B$3$l$K4X78$9$k(Brealloc(...,0)
        $B$b5v$7$F$$$k!#$3$l$,NN0h$r2rJ|$9$k(B)$B!#$1$l$I$b@N$N%3%s%Q%$%i$K(B
        $B$O%5%]!<%H$7$F$$$J$$$b$N$b$"$k$N$G!"$3$NJ}K!$O9-$/0\?"@-$,9b$$(B
        $B$H$O$$$($J$$!#Bh0l0z?t$r%L%k%]%$%s%?$K$9$k$3$H$O!"3dEv$F$kNN0h(B
        $B$r$@$s$@$sA}$d$7$F$$$/%"%k%4%j%:%`$r<B8=$9$k$H$-$K!"5/F0$9$kIt(B
        $BJ,$r=q$/$3$H$rMF0W$K$9$k!#(B

                References: ANSI Sec. 4.10.3.4 .




Q3.13:  calloc$B$H(Bmalloc$B$N0c$$$O!#(Bcalloc$B$N(B0$B$rKd$a$k$H$$$&5!G=$r!"%]%$%s(B
        $B%?$dIbF0>.?tE@?t$K;H$C$F$bLdBj$J$$$+!#(Bfree$B$O(Bcalloc$B$,3d$jEv$F$?(B
        $BNN0h$K$bF/$/$+!"$=$l$H$b(Bcfree$B$r;H$o$J$/$F$O$J$i$J$$$+!#(B

A3.13:  calloc(m, n)$B$O0J2<$N%3!<%I$HF1$8F0$-$r$9$k!#(B

                p = malloc(m * n);
                memset(p, 0, m * n);


        0$B$rKd$a$k$H$$$&$N$OA4%S%C%H(B0$B$K$9$k$H$$$&$3$H$G!"%]%$%s%?$dIbF0(B
        $B>.?tE@?t$K$D$$$F0UL#$N$"$k(B0$B$rKd$a$k$3$H$rJ]>Z$7$F$$$J$$(B(1$B>O$r(B
        $B;2>H$N$3$H(B)$B!#(B calloc$B$,3d$jEv$F$?NN0h$N2rJ|$K(Bfree$B$r;H$&$3$H$O2D(B
        $BG=$G$"$k$7!"$=$&$9$Y$-$G$"$k!#(B

                References: ANSI Secs. 4.10.3 to 4.10.3.2 .



Q3.14:  alloca$B$O2?$r0UL#$7$F$$$F$$$k$N$+!#$J$<;H$o$J$$$[$&$,$h$$$H?M$O(B
        $B8@$&$N$+!#(B

A3.14:  alloca$B$ONN0h$r3d$jEv$F!"(Balloca$B$r5/F0$7$?4X?t$rH4$1$?;~E@$G$=$N(B
        $BNN0h$O<+F0E*$K2rJ|$5$l$k!#$9$J$o$A(Balloca$B$K$h$C$F3d$jEv$F$i$l$?(B
        $BNN0h$O!"FCDj$N4X?t$N!V%9%?%C%/%U%l!<%`!W$d%3%s%F%-%9%H$K6I=jE*(B
        $B$H$J$k!#(B

        alloca$B$r0\?"@-$,9b$$$h$&$K=q$/$3$H$O$G$-$J$$$7!"%9%?%C%/$N$J$$(B
        $B%^%7%s>e$K<BAu$9$k$3$H$OFq$7$$!#$3$l$r;H$&$3$H$O!"La$jCM$rD>@\(B
        $BJL$N4X?t$KEO$9>l9g$K(B($B$9$0$K;W$$$D$/$h$&$J<BAu$G$O!"%9%?%C%/$K(B
        $B4p$E$/%^%7%s$G$OI,$:<:GT$9$k(B)$B!"$?$H$($P(Bfgets(alloca(100),100,
        stdin)$B$N$h$&$J<0$GLdBj$r>7$/!#(B

        $B$3$l$i$NM}M3$K$h$j!"(Balloca$B$OJXMx$K$_$($k$,!"9-$/0\?"@-$,9b$/$J(B
        $B$1$l$P$J$i$J$$%W%m%0%i%`$G$O;H$&$3$H$O$G$-$J$$!#(B

                References: ANSI Rationale Sec. 4.10.3 p. 102.



4.$B<0(B

Q4.1:   $B$J$<0J2<$N%3!<%I$O$&$^$/F0$+$J$$$+!#(B

                a[i] = i++;


A4.1:   i++$B$OI{:nMQ$r$b$?$i$9!#$D$^$j(Bi$B$NCM$rJQ99$9$k!#$3$N$3$H$,<0$NB>(B
        $B$N$H$3$m$G(Bi$B$,;2>H$5$l$F$$$k$H$-$KL$Dj5A$N?6Iq$$$r0z$-5/$3$9(B
        (K&R$B$N8@$$2s$7$G$O$3$N<0$N?6$kIq$$$OITDj$G$"$k$H<h$l$k$,!"(B
        ANSI/ISO C$B5,3J$O0lCJ$H87$7$/L$Dj5A$G$"$k$H$7$F$$$k!#(B-- Q5.23$B$r(B
        $B;2>H$N$3$H(B)$B!#(B

                References: ANSI Sec. 3.3 p. 39.




Q4.2:   $B;d$,;H$C$F$$$k%3%s%Q%$%i$G$O0J2<$N%3!<%I$G(B49$B$r=PNO$9$k!#(B

                int i = 7;
                printf("%d\n", i++ * i++);


        $BI>2A$N=g$K$+$+$o$j$J$/!"(B56$B$r=PNO$9$k$N$G$O$J$$$N$+!#(B

A4.2:   $B8eCVA}J,1i;;;R(B++$B$b8eCV8:J,1i;;;R(B--$B$bA02sCM$rJV$7$?8e$G!"$=$NA`(B
        $B:n$r9T$&!#$3$N(B"$B8e(B"$B$N0UL#IU$1$,$7$P$7$P8m2r$r>7$/!#A02sCM$r;:$_(B
        $B=P$7$?$9$08e$G!"$+$D<0$N$=$NB>$NItJ,$,I>2A$5$l$kA0$K!"(B++$B$d(B--$B$,(B
        $BA}J,$d8:J,$r9T$&$3$H$OJ]>Z$5$l$F$$$J$$!#C1$K<0$,(B"$B=*N;(B"$B$9$k$^$((B
        $B$N$I$3$+$G99?7$,<B9T$5$l$k$3$H$,J]>Z$5$l$F$$$k$@$1$G$"$k(B(ANSI
        C$B$NMQ8l$G$$$($P<!$N(B "$BI>2A=g=xE@(B"(sequence point)$B$NA0(B)$B!#>e$NNc(B
        $B$G$O!"A02sCM$HA02sCM$r3]$19g$o$;$F$+$iA}J,$r<B9T$9$k$3$H$r%3%s(B
        $B%Q%$%i$OA*Br$7$?!#(B

        $BI{:nMQ$,$"$$$^$$$JItJ,$,J#?t$"$k%3!<%I$N$U$k$^$$$O!">o$KL$Dj5A(B
        $B$G$"$k!#<+J,$N;H$C$F$$$k%3%s%Q%$%i$,$=$N$h$&$JI{:nMQ$r;}$D%3!<(B
        $B%I$r$I$&<BAu$7$F$$$k$+D4$Y$k$h$&$J$3$H$b$7$F$O$$$1$J$$(B($BB?$/$N(BC
        $B$N652J=q$K:\$C$F$$$k6r$+$JN}=,LdBj$G$"$k$,!"$*A&$a$O$7$J(B
        $B$$(B)$B!#(BK&R$B$,;XE&$7$F$$$k$h$&$K!V$b$7MM!9$J%^%7%s$G$I$&$d$C$F$d$C(B
        $B$F<B9T$7$F$k$N$+!"$o$+$i$J$1$l$P!"$=$N$o$+$i$J$$$H$$$&$3$H$,=u(B
        $B$1$H$J$k$+$b$7$l$J$$!#!W(B

                References: K&R I Sec. 2.12 p. 50; K&R II Sec. 2.12 p. 54; ANSI
                Sec. 3.3 p. 39; CT&P Sec. 3.7 p. 47; PCS Sec. 9.5 pp. 120-1.
                (H&S Sec. 7.12 pp. 190-1$B$OL5;k$9$k$3$H!#$3$l$O;~BeCY$l$G$"$k(B)




Q4.3:   $B0J2<$N%3!<%I$r$$$/$D$+$N%3%s%Q%$%i$G%3%s%Q%$%k$7$F<B83$7$F8+(B
        $B$?!#(B

                int i = 2;
                i = i++;

        i$B$NCM$H$7$F!"(B2$B$rM?$($k$b$N(B3$B$rM?$($k$b$N(B4$B$rM?$($k$b$N$,$"$C$?!#(B
        $B>e$N%3!<%I$N?6$kIq$$$OL$Dj5A$G$"$k$N$OCN$C$F$$$k!#$7$+$7$I$&$7(B
        $B$F(B4$B$K$J$k$h$&$J$3$H$,$"$k$N$+!#(B

A4.3:   $BL$Dj5A$N?6$kIq$$$H$$$&$N$O!"$I$s$J$3$H$,5/$C$F$bIT;W5D$,$J$$$3(B
        $B$H$r0UL#$7$F$$$k!#(BQ5.23$B$r;2>H$N$3$H!#(B



Q4.4:   $B?6$kIq$$$,L$Dj5A$@$H$&$k$5$/$$$&?M$,$$$k$1$l$I(BANSI$B=`5r$N%3%s%Q(B
        $B%$%i$G;n$7$F;d$,;W$&$H$*$j$N7k2L$rF@$?!#(B



A4.4:   $BL$Dj5A$N?6$kIq$$$K=P$/$o$7$?$i%3%s%Q%$%i$O9%$-$J$h$&$K?6$kIq$&(B
        ($B$+$D!"$"$kHO0OFb$G!"<BAu$,Dj5A$7$??6$kIq$$!"$"$k$$$OITDj$N?6(B
        $B$kIq$$$K=P$/$o$7$?$H$-(B)$B!#$=$NCf$K$O$"$J$?$,4|BT$7$?7k2L$b4^(B
        $B$`!#$3$s$J$3$H$KMj$k$N$OGO</$2$F$$$k!#(BQ5.18$B$r;2>H$N$3$H!#(B



Q4.5:   $B3g8L$rL@<(E*$K=q$$$FI>2A$N=g$r;d$N9%$-$J$h$&$K$9$k$3$H$,$G$-$k(B
        $B$+!#$b$7$G$-$J$$$H$7$F!"M%@h=g0L$,I>2A$N=g$r7h$a$k$N$G$O$J$$$N(B
        $B$+!#(B

A4.5:   $B1i;;;R$NM%@h=g0L$d3g8L$rIU$1$k$3$H$O!"<0$NI>2A$KItJ,E*$K=g=xIU(B
        $B$1$r$9$k$@$1$G$"$k!#0J2<$N<0$r9M$($F8+$h$&!#(B

                f() + g() * h()

        $B3]$1;;$OB-$7;;$NA0$K5/$3$k$H$$$&$3$H$O$o$+$C$F$$$k$1$l$I!"(B3$B$D(B
        $B$N4X?t$N$&$A$I$N4X?t$,:G=i$K8F$P$l$k$+$O$o$+$i$J$$!#(B



Q4.6:   $B$=$l$G$O(B&&$B$d(B||$B$d(B,($B%3%s%^(B)$B$O$I$&$J$k$N$+!#(B
        "if((c = getchar()) == EOF || c == '\n')"...$B$H$$$&$h$&$J%3!<%I(B
        $B$r8+$?$3$H$,$"$k$,!#(B

A4.6:   $B$3$l$i$N1i;;;R$K$D$$$F$O(B($B;09`1i;;;R(B?:$B$bF1MM$@$,(B)$BFCJL$JNc30$,$"(B
        $B$C$F!"$=$l$>$lI>2A=g=xE@$r0UL#$7$F$$$k(B($B$D$^$j:8$+$i1&$X=g$KI>(B
        $B2A$9$k$3$H$,J]>Z$5$l$F$$$k(B)$B!#(B C$B$K4X$9$k$I$s$JK\$G$b!"$3$NE@$K(B
        $B$D$$$FL@Gr$K$7$F$/$l$k$O$:$G$"$k!#(B

                References: K&R I Sec. 2.6 p. 38, Secs. A7.11-12 pp. 190-1;
                K&R II Sec. 2.6 p. 41, Secs. A7.14-15 pp. 207-8; ANSI
                Secs. 3.3.13 p. 52, 3.3.14 p. 52, 3.3.15 p. 53, 3.3.17 p. 55,
                CT&P Sec. 3.7 pp. 46-7.




Q4.7:   $B<0$NCM$r;H$o$J$$$H$7$F!"JQ?t$K(B1$B$r2C$($k$N$K(Bi++$B$H(B++i$B$N$I$A$i$r(B
        $B;H$($P$h$$$N$+!#(B

A4.7:   $B$3$NFs$D$O;:$_=P$9CM$,0c$&$@$1$G!"I{:nMQ$@$1$rI,MW$H$9$k$H$-$O(B
        $B$^$C$?$/F1$8$G$"$k!#(B



Q4.8:   $B$J$<0J2<$N%3!<%I$O;d$,;W$C$?DL$j$KF0$+$J$$$N$+!#(B

                int a = 1000, b = 1000;
                long int c = a * b;


A4.8:   C$B$N@0?t$NJQ49%k!<%k$K$h$j!":8JU$N(Blong int$B$KBeF~$5$l$k$^$G$K3](B
        $B$1;;$,(Bint$B$G9T$o$l%*!<%P!<%U%m!<$,5/$3$j!"@Z$j<N$F$,<B9T$5$l$?(B
        ($B$"$k$$$OC1$K@Z$j<N$F$@$1$,9T$o$l$?(B)$B!#(Blong$B$N1i;;$r9T$o$;$k$K$O(B
        $BL@<(E*$J%-%c%9%H$r;H$(!#(B

                long int c = (long int)a * b;

        (long int)(a * b)$B$G$O2f!9$NK>$`7k2L$,F@$i$l$J$$$3$H$KCm0U$9$k(B
        $B$3$H!#(B



5. ANSI C

Q5.1:   $B!V(BANSI C$B5,3J!W$H$O2?$r0UL#$9$k$N$+!#(B

A5.1:   1983$BG/$K!"%"%a%j%+9qFbI8=`5,3J6(2q(B(ANSI)$B$O(BC$B8@8l$NI8=`2=$rL\;X(B
        $B$70Q0w2q(BX3J11$B$rH/B-$5$;$?!#2?EY$+$N9-HO0O$K$o$?$k8x3+%l%S%e!<(B
        $B$r4^$`D9$$:$Fq$J2aDx$N8e$K!"0Q0w2q$N:n6H$O!"%"%a%j%+9qFbI8=`5,(B
        $B3J(BX3.159$B$H$7$F(B1989$BG/(B12$B7n(B14$BF|$KHc=Z$5$l!"(B 1990$BG/$N=U$K=PHG$5$l(B
        $B$?!#(BANSI C$B$NBgItJ,$O@$$NCf$N47=,$r5,3J2=$7$?$b$N$G!"$=$N$[$+(B
        $B$O(BC++$B$+$i$N(B($B0lHVM-L>$J$N$O4X?t%W%m%H%?%$%W$G$"$k(B)$B%"%$%G%"$NGR(B
        $B<Z$H!"B?9q8lJ8;zNs$X$NBP1~(B($B9sI>$5$l$F$$$k;0O"J8;z(B(trigraph)$B$r(B
        $B4^$`(B)$B$G$"$k!#(B ANSI C$B5,3J$O!"(BC$B$N<B9T;~$N%i%$%V%i%j$K$D$$$F$b5,(B
        $BDj$7$F$$$k!#(B

        $B=PHGJ*$H$7$F$N5,3J$O!"!V(BRationale($BO@M}E*:,5r(B)$B!W$r4^$s$G$$$k!#(B
        Rationale$B$O!"5,3J$N7hDj$K$^$D$o$kB?$/$N;vJA$K$D$$$F@bL@$7!"$3(B
        $B$3$G<h$j>e$2$F$$$k$$$/$D$+$N$3$H$,$i$r4^$`?tB?$/$N5,3J$NHyL/$J(B
        $BE@$K$D$$$F@bL@$7$F$$$k(B (Rationale$B$=$N$b$N$O(BANSI Standard
        X3.159-1989ANSI Standard X3.159-1989$B$N0lIt$G$O$J$$!#$?$@$7;qNA(B
        $B$H$7$F4^$^$l$F$$$k(B)$B!#(B

        ANSI C$B5,3J$O!"9q:]5,3J(BISO/IEC 9899:1990$B$H$7$F:NMQ$5$l$?!#$?$@(B
        $B$7>O$N?6$jJ}$O0[$J$k$7(B(ANSI$B$N(B2$B>O$+$i(B4$B>O$O!"$@$$$?$$(BISO$B$N(B 5$B>O$+(B
        $B$i(B7$B>O$KBP1~$9$k(B)$B!"(BRationale$B$O:#$N$H$3$m4^$^$l$F$$$J$$!#(B



Q5.2:   $B$I$3$+$i5,3J$r<j$KF~$l$k$3$H$,$G$-$k$+(B

A5.2:   $B%"%a%j%+9g=09q9qFb$G$O!"0J2<$N$H$3$m$+$i<j$KF~$l$k$3$H$,$G$-(B
        $B$k!#(B
             American National Standards Institute 11 W. 42nd St.,
             13th floor New York, NY  10036  USA (+1) 212 642 4900

        $B$"$k$$$O(B
             Global Engineering Documents 2805 McGaw Avenue Irvine, CA
             92714  USA (+1) 714 261 1455 (800) 854 7179  (U.S. &
             Canada$B$+$i$@$1(B)
        $B$=$NB>$N9q$G$O!"9q$N5,3J$r<h$j;E@Z$kCDBN$+%8%e%M!<%V$N(BISO$B$KLd(B
        $B$$9g$o$;$F$_$k$3$H!#(B
             ISO Sales Case Postale 56 CH-1211 Geneve 20 Switzerland

        $B2A3J$O!"(BANSI$B$+$i9XF~$9$k$H$-$O(B$130$B$G!"(BGlobal$B$+$i9XF~$9$k>l9g(B
        $B$O(B$162.50$B$G$"$k!#(B Rationale$B$r4^$`%*%j%8%J%k$N(BX3.159$B$b!"(BANSI$B$+(B
        $B$i$O(B$205.00$B$G!"(B Global$B$+$i$O(B$200.50$B$GF~<j$9$k$3$H$,$G$-$k!#(B
        ANSI$B$O!"$=$N1?1D;q6b$r5,3J$N0u:~J*$NHNGd$+$iF@$F$$$k!#$h$C$F5,(B
        $B3J$NEE;RE*$J%3%T!<$OF~<jIT2D$G$"$k!#(B

        $B8m2r$r>7$/$h$&$JBj$N!VCm<aIU$-(BANSI C$B5,3J(B(Annotated ANSI CStan-
        dard)$B!W$H$$$&K\$,(BHerbert Schildt$B$NCm<aIU$-(B
        $B$G(BOsborne/McGraw-Hill$B$+$i(B ISBN 0-07-881952-0$B$H$7$F=PHG$5$l$F$$(B
        $B$k!#$3$l$O(BISO 9899$B$NA4J8$r4^$s$G$$$k!#9g=09q9qFb$G$O(B$40$BDxEY$G(B
        $B<j$KF~$k(B($B$3$NK\$H8x<0$N5,3J=q$NCMCJ$N:9$OCm<a$N2ACM$rH?1G$7$F(B
        $B$$$k$H9M$($i$l$F$$$k(B)$B!#(B

        Rationale$B$N%F%-%9%H(B($B5,3JA4BN$G$O$J$$(B)$B$O(Bftp.uu.net$B$N%G%#%l%/%H(B
        $B%j(Bdoc/standards/ansi/X3.159-1989$B$+$i(Banonymous ftp(Q17.8$B;2>H(B)$B2D(B
        $BG=$G$"$k!#(BRationale$B$O(BSilicon Press$B$+$i=PHG$b$5$l$F$$$k!#(B ISBN
        $B$O(B0-929306-07-4$B$G$"$k!#(B



Q5.3:   $BC/$+8E$$=q$-J}$N(BC$B%W%m%0%i%`$r(BANCI C$B$KJQ49$9$k%W%m%0%i%`$H!"$=(B
        $B$NH?BP$r$*$3$J$&%D!<%k!"$^$?<+F0E*$K4X?t%W%m%H%?%$%W$r@8@.$9$k(B
        $B%D!<%k$r;}$C$F$$$J$$$+!#(B

A5.3:   protoize$B$H(Bunprotize$B$H$$$&$N$,!"4X?t%W%m%H%?%$%W$+$i8E$$=q$-J}(B
        $B$N4X?tDj5A$d@k8@$X!"$"$k$$$O$=$N5U$r<B9T$9$k%D!<%k$G$"$k(B($B$3$l(B
        $B$i$N%D!<%k$O!"8E$$=q$-J}$N(BC$B$H(BANSI C$B4V$N40`z$JJQ49%D!<%k$G$O$J(B
        $B$$(B)$B!#(B FSF$B$N(BGNU C$B%3%s%Q%$%i(Bgcc$B$N%Q%C%A$H$7$FB8:_$7$F$$$?$,!":#(B
        $B$G$O(B gcc$BK\BN$N@5<0$JG[I[$N0lIt$G$"$k!#%5%$%H(Bprep.ai.mit.edu$B$d(B
        $BB>$N(BFSF$B$N%"!<%+%$%V%5%$%H$N%G%#%l%/%H%j(Bpub/gnu$B$N%U%!%$(B
        $B%k(Bprotoize-1.39.0.5.Z$B$rC5$7$F$_$k$3$H!#(B

        $B%W%m%0%i%`(Bunproto($B%5%$%H(Bftp.win.tue.nl$B$N%U%!%$(B
        $B%k(B/pub/unix/unproto5.shar.Z)$B$O!"%W%j%W%m%;%C%5$H%3%s%Q%$%i$N4V(B
        $B$KF~$C$F!"(BANSI C$B$r8E$$(BC$B$K(B ($B%3%s%Q%$%k;~$K(B)$BJQ49$9$k%U%#%k%?$G$"(B
        $B$k!#(B

        GNU GhostScript$B%Q%C%1!<%8$K$O(Bansi2knr$B$H$$$&!"$A$g$C$H$7$?%W%m(B
        $B%0%i%`$,$D$$$F$$$k!#(B

        $B4X?t%W%m%H%?%$%W$N<+F0@8@.%D!<%k$O$$$/$D$+B8:_$9$k!#(BCPROTO$B$N%P(B
        $B!<%8%g%s(B3$B$O!"(B 1992$BG/(B3$B7n$K(Bcomp.sources.misc$B$K%]%9%H$5$l$?!#B>$K(B
        $B$b(Bcextract$B$H$$$&%D!<%k$,B8:_$9$k!#(BQ17.12$B$b;2>H$N$3$H!#(B

        $B:G8e$K0l8@!#BgNL$N8E$$%3!<%I$r(BANSI C$B$KJQ49$9$kI,MW$,K\Ev$K$"$k(B
        $B$N$+!#8E$$=q$-J}$N4X?t$N9=J8$O$=$N$^$^;H$($k!#(B



Q5.4:   ANSI$B$N(B"$BJ8;zNs$r:n$j=P$9(B"$B%W%j%W%m%;%C%5$N1i;;;R(B#$B$r;H$C$F!"%a%C(B
        $B%;!<%8$NCf$K%7%s%\%kDj?t$rA^F~$7$h$&$H$7$F$$$k!#$1$l$I!"(B#$B$O%^(B
        $B%/%m$NCM$G$O$J$/%^%/%m$NL>A0$rJ8;zNs$K$7$F$7$^$&!#(B

A5.4:   $B%^%/%m$rE83+$7$FJ8;zNs$r:n$j=P$7$?$$$H$-$O0J2<$N$h$&$JFsCJ$N<j(B
        $BB3$-$rF'$^$J$1$l$P$J$i$J$$!#(B

                #define str(x) #x
                #define xstr(x) str(x)
                #define OP plus
                char *opname = xstr(OP);

        $B$3$l$G(Bopname$B$,!V(BOP$B!W$G$O$J$/!V(Bplus$B!W$K@_Dj$5$l$k!#(B

        $BF1$8MM$J2sHr<jCJ$,!"%H!<%/%s$rO"7k$9$k1i;;;R(B##$B$r;H$C$F!"Fs$D(B
        $B$N(B($BL>A0$G$O$J$/(B)$B%^%/%m$NCM$rO"7k$9$k$H$-$KI,MW$K$J$k!#(B

                References: ANSI Sec. 3.8.3.2, Sec. 3.8.3.5 example p. 93.



Q5.5:   $B$J$<(Bconst$B$NCM$r!"=i4|2=;XDj;R(B(initializer)$B$dG[Ns$NBg$-$5$K;H$((B
        $B$J$$$+M}2r$G$-$J$$!#(B

                const int n = 5;
                int a[n];


A5.5:   const$B=$>~;R$OJ8;z$I$*$j!VFI$_=P$7$N$_!W$r0UL#$9$k!#(Bconst$B$H=$>~(B
        $B$5$l$?%*%V%8%'%/%H$OIaDL$N<B9T;~$N%*%V%8%'%/%H$G(B($BIaDL$O(B)$BBeF~IT(B
        $B2DG=$G$"$k!#$7$?$,$C$F(Bconst$B$H=$>~$5$l$?%*%V%8%'%/%H$O!"Dj?t<0(B
        $B$H$$$&MQ8l$NA4BN$N0UL#$r9M$($k$HDj?t<0$H$O8F$Y$J$$(B(C$B$O$3$NLL$G(B
        $B$O(BC++$B$H0[$J$k(B)$B!#%3%s%Q%$%k;~$N??$NDj?t$,I,MW$J$i!"%W%j%W%m%;%C(B
        $B%5$N(B#define$B$r;H$(!#(B
             References: ANSI Sec. 3.4 .



Q5.6:   "char const *p"$B$H(B"char * const p"$B$N0c$$$O!#(B

A5.6:   "char const *p"$B$OJ8;zDj?t$X$N%]%$%s%?$G(B($BJ8;z$rJQ99$9$k$3$H$O$G(B
        $B$-$J$$(B)$B!"(B "char * const p"$B$OJ8;z(B($B$NJQ?t(B)$B$X$N%]%$%s%?Dj?t(B($B%]%$(B
        $B%s%?$rJQ99$9$k$3$H$O$G$-$J$$(B)$B$G$"$k(B ($B0lHVFbB&$+$i!V$R$C$/$jJV(B
        $B$7$F!WFI$a!#(BQ10.4$B;2>H(B)$B!#(B

             References: ANSI Sec. 3.5.4.1 .



Q5.7:   $B$J$<(Bconst char **$B$r0z?t$H$7$F<h$k$H4X?t%W%m%H%?%$%W$K=q$+$l$?(B
        $B4X?t$K!"(B char **$B$rEO$9$3$H$,$G$-$J$$$N$+!#(B

A5.7:   $B$I$s$J7?(BT$B$KBP$7$F$b!"(Bconst T$B$X$N%]%$%s%?$rA[Dj$7$F$$$k$H$3$m$K(B
        T$B$X$N%]%$%s%?$r;H$&$3$H$O2DG=$G$"$k!#$7$+$7$3$N(B($B$3$N$3$H$rL@5-(B
        $B$7$F$$$k(B)$B5,B'!"$D$^$jBe$o$j$K;H$&$3$H$N$G$-$k%]%$%s%?7?$K>/$7(B
        $B$N%_%9%^%C%A$r5v$7$F$$$k5,B'$O!":F5"E*$KE,MQ$5$l$k$o$1$G$O$J(B
        $B$/!"C1$K0lHV>e$N%l%Y%k$GE,MQ$5$l$k$@$1$G$"$k!#%]%$%s%?$,0lCJ$G(B
        $B$"$k>l9g$r=|$$$F!"7?$,0lCW$7$J$$%]%$%s%?$rBeF~$^$?$O0z?t$H$7$F(B
        $BEO$9$H$-$O!"L@<(E*$K%-%c%9%H(B($B$3$N>l9g$O(Bconst char **)$B$7$J$1$l(B
        $B$P$J$i$J$$!#(B

             References: ANSI Sec. 3.1.2.6 p. 26, Sec. 3.3.16.1 p. 54,
             Sec. 3.5.3 p. 65.



Q5.8:   $B;d$,;H$C$F$$$k(BANSI C$B%3%s%Q%$%i$K0J2<$N$h$&$J%3!<%I$rEO$9$H!"%G(B
        $B!<%?$N7?$,%_%9%^%C%A$@$HJ86g$rIU$1$k!#$J$<$+!#(B

                extern int func(float);

                int func(x)
                float x;
                {$B!D(B


A5.8:   $B?7$7$$=q$-J}$G$"$k%W%m%H%?%$%W@k8@$N(B"extern int func(float);"
        $B$H!"8E$$=q$-J}$NDj5A$N(B"int func(x) float x;"$B$r:.$<$F;H$C$F$$$k(B
        $B$+$i!#N>J}$N=q$-J}(B(Q5.9$B;2>H(B)$B$r:.$<$F;H$C$F$b$?$$$F$$$N>l9g$OLd(B
        $BBj$J$$$,!"$3$N>l9g$OLdBj$,$"$k!#5lMh$N(BC$B$O(B(ANSI C$B$b%W%m%H%?%$%W(B
        $B$,$J$$$H$-$d!"0z?t$,2DJQ8D$N$H$-$O$=$&$@$,(B)$B4X?t$KEO$9$H$-$K!<(B
        $BIt$N0z?t$r(B"$B9-$2$k(B"$B!#(B float$B$O(Bdouble$B$K3J>e$2$5$l!"(Bchar$B$d(Bshort
        int$B$O(Bint$B$K3J>e$2$5$l$k(B ($B8E$$=q$-J}$N4X?tDj5A$G$O!"CM$O8F$P$l$?(B
        $BB&$N4X?t$G3J2<$NJQ?t$H$7$F@k8@$5$l$F$$$k$H$-$K$O8F$P$l$?$[$&$N(B
        $B4X?t$NCf$G$O<+F0E*$KBP1~$9$k(B"$B69$$(B"$B7?$K5UJQ49$5$l$?(B)$B!#(B

        $B?7$7$$=q$-J}$G$"$k%W%m%H%?%$%W@k8@$r4X?tDj5A$NCf$G<sHx0l4S$7$F(B
        $B;H$&$+!"(B

                int func(float x) { $B!D(B }

        $B?7$7$$=q$-J}$N4X?t%W%m%H%?%$%W@k8@$r!"8E$$=q$-J}$NDj5A$K%^%C%A(B
        $B$9$k$h$&$KJQ99$9$k$3$H$GLdBj$O2r7h$9$k!#(B

                extern int func(double);


        ($B$3$N>l9g%Q%i%a!<%?$N%"%I%l%9$r;H$&5$$,$J$$8B$j!"8E$$=q$-J}$N(B
        $B@k8@$G$O(Bdouble$B$r;H$C$?$[$&$,$o$+$j$d$9$$(B)

        "$B69$$(B"(char$B!"(Bshort int$B!"(Bfloat)$B7?$O!"4X?t0z?t$dLa$jCM$H$7$F$OHr(B
        $B$1$?$[$&$,0BA4$G$"$m$&!#(B

                References: ANSI Sec. 3.3.2.2 .



Q5.9:   $B8E$$=q$-J}$H?7$7$$=q$-J}$N4X?t$N9=J8$r:.$<$F;H$C$F$b$$$$$N$+!#(B

A5.9:   $BCm0U$5$($9$l$P(B(Q5.8$B$rFC$K;2>H$N$3$H(B)$B:.:_$9$k$3$H$O!"$^$C$?$/9g(B
        $BK!$G$"$k!#$7$+$78E$$=q$-J}$N9=J8$O;~BeCY$l$H9M$($i$l!"$=$N%5%](B
        $B!<%H$O$"$kF|;_$^$C$F$7$^$&$+$b$7$l$J$$!#(B


                References: ANSI Secs. 3.7.1, 3.9.5 .



Q5.10:  $B$J$<@k8@(B

                extern f(struct x {int s;} *p);

        $B$G4qL/$J7Y9p%a%C%;!<%8!V9=B$BN(Bx$B$O%W%m%H%?%$%W$N%9%3!<%WFb$GF3(B
        $BF~$5$l$?!W$,=P$k$N$+!#(B

A5.10:  C$B$N%V%m%C%/$N%9%3!<%W$N0lHL5,B'$N5$$^$0$l$K$h$j!"%W%m%H%?%$%W(B
        $BFb$G$7$+@k8@$5$l$F$$$J$$9=B$BN$OF1$8%=!<%9%U%!%$%kFb$G@k8@$5$l(B
        $B$F$$$kB>$N9=B$BN$H8_49@-$r;}$D$3$H$,$G$-$J$$$7!"9=B$BNL>$O4|BT(B
        $B$KH?$7$F8e$G;H$($J$$(B ($BL>A0$O%W%m%H%?%$%W$N=*$o$j$G%9%3!<%W$+$i(B
        $B=P$F$7$^$&(B)$B!#(B

        $B$3$NLdBj$r2r7h$9$k$K$O!"%W%m%H%?%$%W$NA0$KL50UL#$K$_$($k@k8@(B

                struct x;

        $B$rIU$1$k!#$3$l$K$h$j%U%!%$%kA4BN$K$o$?$k%9%3!<%W$G!"9=B$BN(Bx$B$N(B
        $BDj5A$rCV$/>l=j$,3NJ]$5$l$k!#$3$NNN0h$O!"%W%m%H%?%$%WFbIt$N9=B$(B
        $BBN$N@k8@$K$h$jKd$a$i$l$k!#(B

                References: ANSI Sec. 3.1.2.1 p. 21, Sec. 3.1.2.6 p. 26,
                Sec. 3.5.2.3 p. 63.



Q5.11:  #ifdef$B$G%3%a%s%H%"%&%H$7$?%3!<%I$G!"4qL/$J9=J8%(%i!<$,H/@8$7(B
        $B$?!#(B

A5.11:  ANSI C$B$G$O(B#if$B!"(B#ifdef$B!"(B#ifndef$B$K$h$C$F%3%s%Q%$%k$+$i=|30$5$l$k(B
        $B%F%-%9%H$b!V%W%j%W%m%;%9$N%H!<%/%s$H$7$FM-8z$J$b$N$G$"$k!W$H$7(B
        $B$F$$$k!#$3$N$3$H$O=*C<$N$J$$%3%a%s%H$d0zMQId(B($BC;=L$7$?C18l$NCf(B
        $B$N%"%]%9%H%m%U%#$OJ8;zDj?t$N;O$^$j$K$_$($k$N$GMWCm0U$G$"$k(B)$B$^(B
        $B$?0zMQId$G0O$^$l$?ItJ,$K2~9T$,$"$C$F$O$J$i$J$$$3$H$r0UL#$7$F$$(B
        $B$k!#$h$C$F<+A38@8l$N%3%a%s%H$d5<;w%3!<%I$O!V8x<0$N!W%3%a%s%H$N(B
        $B6h@Z$j5-9f$G$"$k(B/*$B$H(B*/$B$N4V$K=q$+$J$1$l$P$J$i$J$$!#(BQ17.14$B!"(BQ6.7
        $B$b;2>H$N$3$H!#(B

                References: ANSI Sec. 2.1.1.2 p. 6, Sec. 3.1 p. 19 line 37.



Q5.12:  main$B$r(Bvoid$B$H$7$F@k8@$7$F!V(Bmain$B$NLa$jCM$,$J$$!W$H$$$&L\>c$j$J%a(B
        $B%C%;!<%8$r>C$9$3$H$,$G$-$k$+(B(exit()$B$r8F$s$G$$$k$N$G!$(Bmain$B$,JV(B
        $B$k$3$H$O$J$$(B)$B!#(B

A5.12:  $B$G$-$J$$!#(Bmain$B$O(Bint$B$rLa$jCM$H$7!$(B($BE,@Z$J7?$N(B)0$B8D$+(B2$B8D$N0z?t$r(B
        $B;}$D$HDj5A$7$J$1$l$P$J$i$J$$!#(Bexit()$B$r8F$s$G$b$^$@7Y9p$,=P$k$N(B
        $B$G$"$l$P!$>iD9$G$"$k$,(Breturn$BJ8$rA^F~$9$k$7$+$J$$(B($B$"$k$$$O;H$((B
        $B$k4D6-$K$$$k$N$G$"$l$P!V$3$3$K$OFO$+$J$$$h(B:NOTREACHED$B!WL?Na$r(B
        $B;H$&(B)$B!#(B

                References: ANSI Sec. 2.1.2.2.1 pp. 7-8.



Q5.13:  exit$B$NCM$O!"(Bmain$B$+$i$NLa$jCM$HK\Ev$KEy$7$$$N$+!#(B

A5.13:  $B8x<08+2r$H$7$F$OEy$7$$!#$?$@$7!"(BANSI$B5,3J$K=>$C$F$$$J$$$$$/$D$+(B
        $B$N8E$$%7%9%F%`$N>e$G$NF0:n$H!"(B main$B$K%m!<%+%k$J%G!<%?$N8eJRIU(B
        $B$1$,(B (setbuf$B$d(Batexit$B$r8F$V$N$K(B)$BI,MW$J>l9g$H!"(Bmain()$B$r:F5"E*$K(B
        $B5/F0$9$k>l9g$r=|$/!#(B

                References: ANSI Sec. 2.1.2.2.3 p. 8.



Q5.14:  $B$J$<(BANSI$B5,3J$O!"30It<1JL;R$N(B7$BJ8;zL\0J9_$K0UL#$,$"$k$3$H$dBgJ8(B
        $B;z>.J8;z$N0c$$$rJ]>Z$7$J$$$N$+!#(B

A5.14:  $BLdBj$O8E$$%j%s%+$K$"$k!#8E$$%j%s%+$O(BANSI$B5,3J$N4IM}2<$K$J$$$7!"(B
        $B8E$$%j%s%+$,:\$C$?%7%9%F%`$r;H$C$F(BC$B%3%s%Q%$%i$r3+H/$7$F$$$k?M(B
        $B$N4IM}2<$K$b$J$$!#<1JL;R$O:G=i$N(B6$BJ8;z$7$+M-8z$G$J$$$H@)8B$7$F(B
        $B$$$k$N$G$"$C$F!"<1JL;R$ND9$5$r(B6$BJ8;z$K@)8B$9$k$H$$$&$3$H$G$O$J(B
        $B$$!#$3$N@)8B$O$&$s$6$j$5$;$i$l$k$,BQ$($i$l$J$$$b$N$G$b$J$$!#$3(B
        $B$N@)8B$O!"5,3J$NCf$G!V$9$?$l$D$D$"$k!W$H5-=R$5$l$F$$$k!#>-Mh$N(B
        $B2~Dj$G@)8B$O4KOB$5$l$=$&$G$"$k!#(B

        $B@)8B$r;}$D8=>u$N%j%s%+$X$N>yJb$O!"0lIt$N?M$,$I$s$J$KH?BP$7$h$&(B
        $B$H!"9T$o$J$1$l$P$J$i$J$$(B(Rationale$B$O$3$N@)8B$r;D$7$F$*$+$J$1$l(B
        $B$P$J$i$J$$$3$H$r!V0lHV?I$$$3$H!W$H=q$$$F$$$k(B)$B!#$b$7;?@.$G$-$J(B
        $B$$$J$i!"$^$?$O@)8B$N$"$k%j%s%+$r;H$C$?%3%s%Q%$%i$,30It<1JL;R$K(B
        $B$b$C$HB?$/$NJ8;z?t$rM-8z$K07$C$F$$$k$H%W%m%0%i%^$K8+$;$k%H%j%C(B
        $B%/$r;W$$IU$$$?$i!"(B X3.159$B$N(BRationale(Q5.1$B$r;2>H(B)$B$N(B3.1.2$B9`$rFI(B
        $B$`$3$H!#$3$N>O$O$$$/$D$+$NJ}K!$r5DO@$7!$$J$<$=$&$$$&J}K!$r6/@)(B
        $B2=$9$k$3$H$,$G$-$J$+$C$?$+@bL@$7$F$$$k!#(B

                References: ANSI Sec. 3.1.2 p. 21, Sec. 3.9.1 p. 96, Rationale
                Sec. 3.1.2 pp. 19-21.



Q5.15:  memcpy$B$H(Bmemmove$B$N0c$$$O!#(B

A5.15:  memmove$B$,!"%3%T!<85$H%3%T!<@h$K=E$J$j$,$"$C$?$H$-$b$&$^$/07$&(B
        $B$3$H$rJ]>Z$7$F$$$k$N$KBP$7!"(Bmemcpy$B$O$=$s$JJ]>Z$O$7$F$$$J$$!#$R(B
        $B$g$C$H$7$?$i(B memcpy$B$O$=$l$rMxMQ$7$F8zN($N$$$$<BAuJ}K!$r<h$C$F(B
        $B$$$k$+$b$7$l$J$$!#5?Ld$,$"$k$H$-$O(Bmemmove$B$r;H$&$[$&$,0BA4$G$"(B
        $B$k!#(B

                References: ANSI Secs. 4.11.2.1, 4.11.2.2, Rationale
                Sec. 4.11.2 .



Q5.16:  $B;d$N;H$C$F$$$k%3%s%Q%$%i$O!"9M$($i$l$k8B$j$N0lHVC1=c$J%F%9%H%W(B
        $B%m%0%i%`$KBP$7$F$b!"$"$j$H$"$i$f$kJ8K!%(%i!<$G$O$M$D$1$k!#(B

A5.16:  $B$-$C$H7/$,;H$C$F$$$k$N$O(BANSI$B5,3J$,7h$^$kA0$K:n$i$l$?%3%s%Q%$%i(B
        $B$G!"4X?t%W%m%H%?%$%W$NN`$r$O$M$D$1$k$+$i$G$"$k!#(B



Q5.17:  ANSI$B%3%s%Q%$%i$r;H$C$F$$$k$N$K!"(BANSI/ISO$B5,3J$N%i%$%V%i%j%k!<%A(B
        $B%s$GL$Dj5A$H$J$k$b$N$,$"$k$N$O$J$<$+!#(B

A5.17:  ANSI$B$N9=J8$O<u$1IU$1$k$1$l$I(BANSI$B8_49$N%X%C%@%U%!%$%k$d%i%s%?%$(B
        $B%`%i%$%V%i%j$,F3F~$5$l$F$$$J$$%3%s%Q%$%i$ODA$7$/$J$$!#(BQ5.16
        $B$H(BQ17.2$B$b;2>H$N$3$H!#(B



Q5.18:  $B$J$<(BANSI$B=`5r$,Gd$jJ*$N(BFrobozz$B%^%8%C%/(BC$B%3%s%Q%$%i$,!"$3$N%3!<%I(B
        $B$r$O$M$D$1$k$N$+!#;d$O$3$N%3!<%I$O(BANSI$B$K5,Dj$5$l$?DL$j$@$H9M$((B
        $B$k!#$J$<$J$i(Bgcc$B$J$i<u$1IU$1$k$+$i$G$"$k!#(B

A5.18:  $B$?$$$F$$$N%3%s%Q%$%i$O5,3J30$N3HD%5!G=$r%5%]!<%H$7$F$$$k!#(B gcc
        $B$O$=$N:G1&Mc$G$"$k!#$O$M$i$l$?%3!<%I$,!"$=$N$h$&$J3HD%5!G=$r;H(B
        $B$C$F$$$J$$<+?.$,$"$k$+!#8@8l$N@-<A$rD4$Y$k$N$KFCDj$N%3%s%Q%$%i(B
        $B$@$1$G<B83$9$k$3$H$O$h$$9M$($G$O$J$$!#$9$J$o$A!"5,3J$,3HD%$rMF(B
        $BG'$7$F$$$k$+$b$7$l$J$$$7!"<B83$K;H$C$?%3%s%Q%$%i$N8m$j$+$b$7$l(B
        $B$J$$!#(B



Q5.19:  $B$J$<(Bvoid *$B%]%$%s%?$rAj<j$K;;=Q1i;;$r$9$k$3$H$,$G$-$J$$$N$+!#(B

A5.19:  $B%3%s%Q%$%i$,%]%$%s%?$,;X$9@h$N%*%V%8%'%/%H$NBg$-$5$rCN$k$3$H$,(B
        $B$G$-$J$$!#;;=Q1i;;$r9T$&A0$K!"%]%$%s%?$r(Bchar *$B$^$?$OA`:n$7$h$&(B
        $B$H$7$F$$$k%G!<%?7?$N%]%$%s%?$K%-%c%9%H$9$k$3$H(B(Q2.18$B$r8+$F$+$i(B
        $B$K$9$k$3$H(B)$B!#(B



Q5.20:  char a[3] = "abc";$B$O@5$7$N$+!#2?$r0UL#$9$k$N$+!#(B

A5.20:  ANSI C$B$G$OJ8K!E*$K@5$7$$(B($B$?$V$s(BANSI C$B@.N)0JA0$N%7%9%F%`$N$$$/(B
        $B$D$+$G$b@5$7$$$@$m$&(B)$B!#$?$@$7Lr$K$?$D$+$I$&$+$OJL$G$"$k!#$3$l(B
        $B$OBg$-$5$,(B3$B$NG[Ns$r@k8@$7!"Cf?H$r(B'a','b','c'$B$G=i4|2=$9$k!#DL>o(B
        $B$N=*C<5-9f$N(B'\0'$B$OIU$+$J$$!#$h$C$F$3$NG[Ns$O(BC$B8@8l$N0UL#$G$NJ8(B
        $B;zNs$G$O$J$/!"(Bstrcpy$B$d(Bprintf %f$B$J$I$G$O;H$($J$$!#(B

                References: ANSI Sec. 3.5.7 pp. 72-3.




Q5.21:  #pragma$B$H$O2?J*$G!"2?$NLr$KN)$D$N$+!#(B

A5.21:  #pragma$B$O!"M#0l$N$&$^$/Dj5A$5$l$?(B"$BHs>o8}(B"$B$rM?$($k!#(B#pragma$B$O!"(B
        $B<BAu$K8GM-$N@)8f$d5!G=$N3HD%$r9T$&$N$K;H$&$3$H$,$G$-$k!#$?$H$((B
        $B$P%=!<%9%3!<%I$NI=<(J}K!$N@)8f$d!"7Y9p%a%C%;!<%8$NM^@)(B ($B8E(B
        $B$$(Blint$B$N(B/* NOTREACHED */$B$H$$$&%3%a%s%H$N$h$&$K(B)$B$K;H$($k!#(B

                References: ANSI Sec. 3.8.6 .




Q5.22:  #pragma$B$O@N$O2?$r0UL#$7$F$$$?$N$+!#%X%C%@%U%!%$%k$NCf$K$$$/$D(B
        $B$+=q$$$F$"$C$?!#(B

A5.22:  $B$$$/$D$+$N%W%j%W%m%;%C%5$G!"%X%C%@!<%U%!%$%k$N!V$Y$-Ey(B
        (idempotent) A * A = A$B!W$r:n$k$N$rMF0W$K$9$k$?$a$N3HD%(B
        $B$H$7$FMQ0U$5$l$F$$$?!#(B Q6.4$B$G@bL@$9$k(B#ifndef$B$r;H$C$?5;(B
        $B$HK\<AE*$KF1$8$G$"$k!#(B



Q5.23:  $B<BAu$K$h$jDj5A$5$l$?(B(implementation-defined)$BF0:n!"ITDj(B
        $B$N(B(unspecified)$BF0:n!"L$Dj5A$N(B(undefined)$BF0:n$r6hJL$9$k$3$H$r@$(B
        $B$NCf$G$O=E;k$9$k$h$&$@!#0c$$$O!#(B

A5.23:  $B4J7i$K@bL@$9$k!#<BAu$K$h$jDj5A$5$l$?F0:n$H$O!"$I$&?6$kIq$&$+$r(B
        $B<BAu$,A*Br$7$F!"$=$N?6$kIq$$$rJ8=q$K$9$k$3$H$r0UL#$9$k!#ITDj$N(B
        $BF0:n$H$O!"$I$&?6$kIq$&$+$r<BAu$,A*Br$7$J$1$l$P$J$i$J$$$,J8=q$K(B
        $B$9$kI,MW$O$J$$$3$H$r0UL#$9$k!#L$Dj5A$H$O!"K\Ev$K$I$s$J$3$H$,$*(B
        $B$3$C$F$bIT;W5D$G$O$J$$$3$H$r0UL#$9$k!#$I$N>l9g$K$b5,3J$O!"I,MW(B
        $B>r7o$r2]$7$F$$$J$$!#:G=i$N(B2$B$D$NF0:n$K$D$$$F5,3J$O;~!9$"$j$=$&(B
        $B$J?6$kIq$$$N=89g$K$D$$$F>/$7Ds0F$7$F$$$k(B($B$=$N=89g$+$iA*Br$7$J(B
        $B$1$l$P$J$i$J$$$+$b$7$l$J$$(B)$B!#(B

        $B0\?"@-$N$"$k%3!<%I$r=q$-$?$$$N$J$i>e$N(B3$B$D$N0c$$$rL5;k$9$k$3$H(B
        $B$,$G$-$k!#$3$l$i(B3$B$D$NF0:n$N$I$l$K$bMj$i$J$$%3!<%I$r=q$3$&$H;W(B
        $B$&$@$m$&$+$i!#(B

                References: ANSI Sec. 1.6, $BFC$K(BRationale$B$NBP1~$9$k$H$3$m(B



6. C$B%W%j%W%m%;%C%5(B

Q6.1:   $BFs$D$NCM$r8r49$9$k0lHLE*$J%^%/%m$O!#(B

A6.1:   $B$3$N<ALd$N0lHL2r$O$J$$!#$b$7$bCM$,@0?t$J$iM-L>$JGSB>O@M}OB$r;H(B
        $B$C$?%H%j%C%/$r;H$&$3$H$,$G$-$k!#$7$+$7!"$3$N%H%j%C%/$bIbF0>.?t(B
        $BE@I=<($N?t$d%]%$%s%?$K$O;H$($J$$(B($B@0?t$N>l9g$bFsCM$,F1$8>l9g$O(B
        $B;H$($J$$!#$^$?@0?t7?$N(B"$BC/$G$b$o$+$k(B"$B6KC<$K5M$a9~$s$@%3!<(B
        $B%I(Ba^=b^=a^=b$B$b!"I{:nMQ$,J#?t2s5/$3$k$3$H$K$h$j87L)$K$$$($P5vMF(B
        $B$G$-$J$$(B)$B!#$b$7%^%/%m$rG$0U$N7?$NCM$K;H$$$?$$$J$i!"0l;~JQ?t$r(B
        $B;H$&$3$H$O$G$-$J$$!#$J$<$J$i!"$I$N7?$N0l;~JQ?t$,I,MW$+$o$+$i$J(B
        $B$$$+$i$G$"$k!#I8=`$N(BC$B$O(Btypeof$B1i;;;R$rMQ0U$7$F$$$J$$!#(B

        $B7?$rEO$9$?$a$KBh;0$N0z?t$rEO$9$N$,LLE]$J$i!"0lHV$N2r7hJ}K!$O!"(B
        $B%^%/%m$r;H$&$3$H$r9M$($J$$$3$H$@!#(B



Q6.2:   $B<1JL;R$r%^%/%m$r;H$C$F:n$j=P$9!"0J2<$N8E$$%3!<%I$r;H$C$F$$$?!#(B

                     #define Paste(a, b) a/**/b

        $B$G$b$b$&F0$+$J$/$J$C$F$7$^$C$?!#(B

A6.2:   $B%3%s%Q%$%k;~$K%3%a%s%H$O!"$^$k$C$-$j>C$($F$7$^$&!#$=$l$f$(=i4|(B
        $B$N%W%j%W%m%;%C%5$NCf$K$O!"M-L>$J$N$O(BReiser$B<R$N$b$N$@$,!"Hs8x3+(B
        $B5!G=$H$7$F!"%H!<%/%s$rO"7k$9$k$N$K%3%a%s%H$r;H$&$3$H$,$G$-$k$b(B
        $B$N$,$"$C$?!#(B ANSI$B5,3J$O(B($B5l(BK&R$B$HF1MM(B)$B!"%3%a%s%H$O6uGr$KCV$-49$((B
        $B$i$l$k$HL@8@$7$F$$$k!#$7$+$7!"%H!<%/%s$rO"7k$7$?$$$H$$$&MW5a$,(B
        $B=P$5$l!"$=$NMW5a$O8=<BLdBj$KB($7$?$b$N$G$"$C$?$+$i!"%H!<%/%s$r(B
        $BO"7k$9$k1i;;;R(B##$B$r(BANSI$B5,3J$OE,@Z$KDj5A$7$FF3F~$7$?!#(B ##$B$O0J2<(B
        $B$N$h$&$K;H$&$3$H$,$G$-$k(B(Q5.4$B$b;2>H$N$3$H(B)$B!#(B

                     #define Paste(a, b) a##b


             Reference: ANSI Sec. 3.8.3.3 p. 91, Rationale pp. 66-7.



Q6.3:   $BFs9T0J>e$K$o$?$k(Bcpp$B$N%^%/%m$O$I$&$d$C$F=q$1$P$h$$$+!#(B

A6.3:   $B$?$$$F$$L\I8$O!"4X?t$r8F$V$h$&$J46$8$G;H$($k%^%/%m$r=q$/$3$H$G(B
        $B$"$k!#$3$N$3$H$O;H$$<j$O:G8e$N%;%_%3%m%s$r<+J,$G=q$/$+$i!"%^%/(B
        $B%m$K$O%;%_%3%m%s$rIU$1$F$O$$$1$J$$$3$H$r0UL#$7$F$$$k!#%^%/%mK\(B
        $BBN$O!"C1$K%+%C%3(B{}$B$G$/$/$C$?J#?t$NJ8(B(statement)$B$G$"$C$F$O$J$i(B
        $B$J$$!#$J$<$J$i%^%/%m$,(B($B0l$D$NJ8$H$7$F!"$+$DM>7W$J%;%_%3%m%s$r(B
        $BIU$1$F8F$P$l$?$H$-$K(B)$B!"(Belse$B@a$r;}$D(Bif/else$BJ8$N(B if$BJ8$K;H$o$l$?(B
        $B$H$-$KJ8K!%(%i!<$H$J$k!#(B

        $B@N$+$i$N2r7hJ}K!$O0J2<$K<($9$b$N$G$"$k!#(B

                     #define Func() do { \
                     /* $B@k8@(B */
                     stmt1: \
                     stmt2: \
                     /*  $B!D(B   */ \
                     } while(0)          /*  $B8e$m$N(B;$B$OL5$7(B */


        $B;H$$<j$,%;%_%3%m%s$rIU$1$?$H$-$K!">e5-$N%^%/%m$O$I$3$G;H$o$l$h(B
        $B$&$H0l$D$NJ8$H$J$k(B ($B:GE,2=$r9T$&%3%s%Q%$%i$OI,$:56$K$J$k(B"$B;`$s(B
        $B$@(B"$B%F%9%H$dJ,4t$r<h$j5n$k$@$m$&!#$?$@$7(Blint$B$OJ86g$rIU$1$k$+$b(B
        $B$7$l$J$$(B)$B!#(B

        $B%^%/%m$NCf$N$9$Y$F$NJ8$,!"@k8@$b%k!<%W$b;}$?$J$$C1=c$J<0$J$i!"(B
        $B%+%C%3(B()$B$G$/$/$C$F%3%s%^$G6h@Z$C$?<0$r;H$&$3$H$,$G$-$k(B(Q6.10$B$N(B
        $BNc$r;2>H$N$3$H!#$3$NJ}K!$r;H$($PCM$rJV$9$3$H$b$G$-$k(B)$B!#(B

             Reference: CT&P Sec. 6.3 pp. 82-3.



Q6.4:   $B%X%C%@!<$,!"JL$N%X%C%@!<$r(B#include$B$9$k$3$H$O5v$5$l$F$$$k$N$+!#(B

A6.4:   $B$3$l$O=q$-J}$K4X$9$k<ALd$G$"$j!"$3$N<ALd$K4X$9$k5DO@$O@9$j>e$,(B
        $B$k!#B?$/$N?M$,!"F~$l;R$N(B#include$B$O;_$a$?$[$&$,$$$$$H?.$8$F$$(B
        $B$k!#8"0R$"$k(BIndian Hill$B%9%?%$%k%,%$%I(B(Q14.3$B;2>H(B)$B$O!"0J2<$NM}M3(B
        $B$K$h$jF~$l;R$O$h$/$J$$$H$7$F$$$k!#4XO"$9$kDj5A$rA\$7$K$/$9$k!#(B
        $B%U%!%$%k$,Fs2s0J>e(B#include$B$5$l$k$HB?=E@k8@%(%i!<$H$J(B
        $B$k!#(BMakefile$B$NJ]<i$,LLE]$K$J$k!#(B

        $B0lJ}(B#include$B$r%M%9%H$5$;$k$H%X%C%@%U%!%$%k$r%b%8%e!<%kE*$K;H$&(B
        $B$3$H$,$G$-$k(B ($B%X%C%@%U%!%$%k$,I,MW$J%U%!%$%k$r(B#include$B$9$k!#;H(B
        $B$$<j$O$$$A$$$A(B #include$B$7$F$^$o$i$J$/$F$9$`(B)$B!#(B grep$B$d%?%0%U%!(B
        $B%$%k$N$h$&$JF;6q$O!"Dj5A$,$I$3$K$"$k$N$+8+$D$1$k$N$rMF0W$K$9(B
        $B$k!#(B

        $BM-L>$J%H%j%C%/(B

                     #ifndef HEADER_FILE_NAME
                     #define HEADER_FILE_NAME
                     $B!D%X%C%@!<%U%!%$%k$NCf?H!D(B
                     #endif

        $B$O%X%C%@%U%!%$%k$N!V$Y$-Ey(B(idempotent) A * A =A$B!W$r2DG=$K$9(B
        $B$k!#$3$&$9$l$P2?2s(B #include$B$7$F$bLdBj$J$$!#(BMakefile$B$rJ]<i$9(B
        $B$k$?$a$N<+F02=%D!<%k(B($B$I$C$A$K$7$F$b!"$3$N<j$N%D!<%k$O%W%m%8(B
        $B%'%/%H$,Bg$-$/$J$l$P@dBPI,MW$H$J$k(B)$B$O!"%M%9%H$7$?(B#include$B%U(B
        $B%!%$%k$N0MB84X78$r$&$^$/:n$j=P$9!#(B 14$B@a$r;2>H$N$3$H!#(B



Q6.5:   #if$B$N$J$+$G(Bsizeof()$B$O;H$($k$+!#(B

A6.5:   $B;H$($J$$!#A0=hM}$O%3%s%Q%$%k$NAa$$CJ3,$G!"$D$^$j%G!<%?7?$NL>A0(B
        $B$rJ,@O$9$kA0$G<B9T$5$l$k!#MxMQ2DG=$J$i(BANSI$B$N(B<limits.h>$BFb$K$"$i(B
        $B$+$8$aDj5A$5$l$?Dj?t$r;H$&$+!"(B"configure"$B%9%/%j%W%H$r;H$&$3$H(B(
        $B$b$C$H$$$$$N$O%G!<%?7?$NBg$-$5$K0MB8$7$J$$$h$&$J%3!<%I$r=q$/$3(B
        $B$H$G$"$k(B)$B!#(B

             References: ANSI Sec. 2.1.1.2 pp. 6-7, Sec. 3.8.1 p. 87
             footnote 83.



Q6.6:   $B%W%j%W%m%;%C%5$N(B#if$B$r;H$C$F!"%^%7%s$,%S%C%0%(%s%G%#%"%s$+%j%H(B
        $B%k%(%s%G%#%"%s$+$rCN$k$3$H$,$G$-$k$+!#(B


A6.6:   $B$?$V$s$G$-$J$$(B($B%W%j%W%m%;%C%5$G$N1i;;$O$9$Y$F(Blong$B$G9T$o$l!$$=(B
        $B$3$K$O%"%I%l%9$N35G0$O$J$$(B)$B!#K\Ev$K%^%7%s$N%(%s%G%#%"%s$rL@<((B
        $BE*$KCN$j$?$$$N$+!#%(%s%G%#%"%s$r5$$K$7$J$$%3!<%I$r=q$/$[$&$,$h(B
        $B$$!#(B



Q6.7:   $B%3%s%Q%$%k;~$K(B"$B9KEO$j$J(B"$B=hM}$r$7$?$$$,!"$I$&$d$C$F(Bcpp$B$K$d$i$;(B
        $B$?$i$h$$$+$o$+$i$J$$!#(B

A6.7:   cpp$B$OHFMQ$N%W%j%W%m%;%C%5$H$7$F$O:n$i$l$F$$$J$$!#IT;w9g$$$J$3(B
        $B$H$r(B cpp$B$K$5$;$k$h$j$O!"FCJL$JMQES$N$?$a$NA0=hM}$r9T$&%D!<%k$r(B
        $B<+J,$G:n$C$?$[$&$,$h$$!#(Bmake(1)$B$N$h$&$JF;6q$r;H$($P!"<+F0E*$K(B
        $B;E;v$r$5$;$k$3$H$,$G$-$k!#(B

        $B$b$7(BC$B8@8l0J30$N$b$N$rA0=hM}$9$k$3$H$r9M$($F$$$k$N$G$"$l$P!"(Bm4
        $B$N$h$&$JHFMQ$N%W%j%W%m%;%C%5$r;H$&$3$H$r9M$($k$3$H!#(B



Q6.8:   $B$3$s$I2!$7IU$1$i$l$?%3!<%I$O(B#ifdef$B$@$i$1$G;d$N<qL#$K$"$o$J$$!#(B
        $B$3$N%3!<%I$r>r7o%3%s%Q%$%k$N0lAH$@$1;D$7$F!"(Bcpp$B$rDL$9$3$H$J(B
        $B$/!"$+$D(B#include$B$d(B#define$B$OE83+$7$J$$$GA0=hM}$9$kJ}K!$,$"$k(B
        $B$+!#(B

A6.8:   $B@$$NCf$K$O(Bunifdef,rmifdef,scpp$B$H$$$&%W%m%0%i%`$,=P$^$o$C$F$$(B
        $B$F!"$3$l$,$^$5$K>e$K=q$+$l$F$$$k5!G=$r;}$D(B(Q17.12$B$r;2>H$N$3(B
        $B$H(B)$B!#(B



Q6.9:   $B$I$&$9$l$P$"$i$+$8$a(B#define$B$5$l$?<1JL;R$r$9$Y$F=&$$$"$2$k$3$H(B
        $B$,$G$-$k$+!#(B

A6.9:   $B2?EY$bI,MW$K$J$k$K$b$+$+$o$i$:I8=`$NJ}K!$H$$$&$N$OB8:_$7$J$$!#(B
        $B%3%s%Q%$%iImB0$N;qNA$,Lr$KN)$?$J$$$J$i!"0lHVL\E*$K$+$J$C$?J}K!(B
        $B$O!"$?$V$s(BUNIX$B$N(Bstrings(1)$B$+$J$s$+$r;H$C$F!"%3%s%Q%$%i$d%W%j%W(B
        $B%m%;%C%5$N<B9T%U%!%$%k$+$iJ8;zNs$r=&$$$@$9$3$H$G$"$m$&!#=>Mh(B
        $B$N!"%7%9%F%`$4$H$GM=$a(B#define$B$5$l$?<1JL;R(B($BNc(B:unix)$B$O!"5,3J0cH?(B
        $B$G$"$k$+$i(B($B$3$l$i$N<1JL;R$O%f!<%6!<$NL>A06u4V(B(name space)$B$H>W(B
        $BFM$9$k(B)$B!":o=|$5$l$?$jL>A0$rJQ99$5$l$?$3$H$KCm0U$9$k$3$H!#(B



Q6.10:  $B2DJQ8D$N0z?t$r<h$k(Bcpp$B$N%^%/%m$r$I$&$d$C$F=q$1$P$h$$$+!#(B

A6.10:  $BM-L>$J%H%j%C%/$H$7$F$O0z?t$r0l$D<h$k%^%/%m$rDj5A$7$F!";H$&$H$-(B
        $B$K$O0z?t$r$+$C$3$GFs=E$K$/$/$k!#$=$&$9$l$P%W%j%W%m%;%C%5$K$O0z(B
        $B?t$,0l$D$K8+$($k!#(B

                     #define DEBUG(args) (printf("DEBUG: "), printf args)

                     if (n != 0) DEBUG(("n is %d\n", n));


        $BL@$i$+$J7gE@$O!";H$$<j$,M>7W$J%+%C%3$rIU$1$k$3$H$r3P$($F$*$+$J(B
        $B$1$l$P$J$i$J$$$3$H$G$"$k!#JL$NJ}K!$O!"0z?t$N?t$K1~$8$FJL$N%^%/(B
        $B%m(B(DEBUG1$B!"(BDEBUG2$B$J$I(B)$B$rMQ0U$9$k$3$H$d!"0J2<$N$h$&$K%3%s%^$r;H(B
        $B$&$3$H$G$"$k!#(B

                     #define DEBUG(args) (printf("DEBUG: "), printf(args))
                     #define _ ,
                     DEBUG("i = %d" _ i)

        $B$=$l$h$j$ODj5A$NL@3N$J2DJQ8D$N0z?t$r<h$kFC@=$N4X?t$r:n$k$[$&$,(B
        $B$h$$!#2<$N(BQ7.1,7.2$B$r;2>H$N$3$H!#(B



7.$B2DJQ8D?t$N0z?t%j%9%H(B

Q7.1:   $B2DJQ8D$N0z?t$r<h$k4X?t$r$I$&$d$C$F=q$1$P$h$$$+!#(B

A7.1:   <stdarg.h>$B$r(B($BI,MW$J$i8E$$(B<varargs.h>$B$r(B)$B;H$&$3$H!#(B

        $B0J2<$O(Bmalloc$B$5$l$?5-21NN0h$KG$0U8D$NJ8;zNs$rO"7k$7$F3JG<$9$k4X(B
        $B?t$G$"$k!#(B

                     #include <stdlib.h>             /* for malloc, NULL, size_t */
                     #include <stdarg.h>             /* for va_stuff */
                     #include <string.h>             /* for strcat et al */

                     char *vstrcat(char *first, ...)
                     {
                         size_t len = 0;
                         char *retbuf;
                         va_list argp;
                         char *p;

                         if(first == NULL)
                             return NULL;

                         len = strlen(first);

                         va_start(argp, first);

                         while((p = va_arg(argp, char*)) != NULL)
                             len += strlen(p);

                         va_end(argp);

                         retbuf = malloc(len + 1);   /* +1 $B$O8e$m$N(B \0$BMQ(B */

                         if(retbuf == NULL)
                             return NULL;            /* error */


                         (void)strcpy(retbuf, first);

                         va_start(argp, first);

                         while((p = va_arg(argp, char *)) != NULL)
                             (void)strcat(retbuf, p);

                         va_end(argp);

                         return retbuf;

                     }


        $B;H$$J}$O0J2<$N$h$&$K$J$k!#(B

             char *str = vstrvat("Hello, ", "world!", (char *)NULL);

        $B:G8e$N0z?t$r%-%c%9%H$9$kI,MW$,$"$k$3$H$KCm0U(B($B;H$&?M$,!"JV$5$l(B
        $B$?(Bmalloc$B$5$l$?NN0h$r2rJ|$9$kI,MW$,$"$k$3$H$K$bCm0U(B)$B!#(B

        ANSI$B5,3J0JA0$K3+H/$5$l$?%3%s%Q%$%i$r;H$&$H$-$O!"$^$:4X?tDj5A$r(B
        $B%W%m%H%?%$%W$J$7$K=q$-49$((B("char *vstrcat(first) char *first;
        {")$B!"<!$K(B<stdlib.h>$B$NBe$o$j$K(B<stdio.h>$B$r%$%s%/%k!<%I$7(B
        $B$F!"(B"extern char malloc();"$B$rDI2C$9$k!#$^$?(Bsize_t$B$NBe$j$K(Bint$B$r(B
        $B;H$&!#(B(void)$B$N%-%c%9%H$r<h$j=|$$$?$j!"(B stdarg$B$G$O$J$/8E(B
        $B$$(Bvagrgs$B$N%Q%C%1!<%8$r;H$o$J$1$l$P$J$i$J$$$+$b$7$l$J$$!#<!$N<A(B
        $BLd$+$i%R%s%H$rF@$k$3$H!#(B

        $B4X?t%W%m%H%?%$%W$O!"2DJQ8D$N0z?t$r07$&>l9g$K$O0z?t$N%G!<%?7?$N(B
        $B>pJs$r;}$C$F$$$J$$!#$h$C$F%G%U%)%k%H$N0z?t$N3J>e$2$,E,1~$5$l(B
        $B$k(B(Q5.8$B;2>H(B)$B!#$^$?%L%k%]%$%s%?$r0z?t$H$7$FM?$($k>l9g$OL@<(E*$K(B
        $B7?$r;XDj$7$J$1$l$P$J$i$J$$(B(Q1.2$B;2>H(B)$B!#(B

             References: K&R II Sec. 7.3 p. 155, Sec. B7 p. 254; H&S
             Sec. 13.4 pp. 286-9; ANSI Secs. 4.8 through 4.8.1.3 .



Q7.2:   printf$B$N$h$&$K%U%)!<%^%C%HJ8;zNs$H2DJQ8D$N0z?t$r$b$i$C$F!"0z?t(B
        $B$r(Bprintf$B$KEO$7$F!";E;v$N$[$H$s$I(Bprintf$B$K$d$i$;$k$h$&$J4X?t$r!"(B
        $B$I$&$d$C$F=q$1$P$h$$$N$+!#(B

A7.2:   vprintf$B$+(Bvfprintf$B$+(Bvsprintf$B$r;H$(!#(B

        $B!V(Berror:$B!W$H$$$&J8;zNs$r@hF,$K%(%i!<%a%C%;!<%8$r=PNO$7!"2~9T$G(B
        $B=*$o$k!V%(%i!<!W%k!<%A%s$r0J2<$K<($9!#(B

                     #include <stdio.h>
                     #include <stdarg.h>

                     void
                     error(char *fmt, ...)
                     {
                         va_list argp;
                         fprintf(stderr, "error: ");
                         va_start(argp, fmt);
                         vfprintf(stderr, fmt, argp);
                         va_end(argp);
                         fprintf(stderr, "\n");
                     }


        $B8E$$(B<varargs.h>$B%Q%C%1!<%8$r(B<stdarg.h>$B$NBe$j$K;H$&$H$-$O4X?t%X(B
        $B%C%@!<$r!"(B

                     void error(va_list)
                     va_dcl
                     {
                         char *fmt;


        $B$KJQ99$7!"0J2<$N9T$r!"(B

                     fmt = va_arg(argp, char *);


        va_start$B$N9T$H(Bvfprintf$B$N9T$NA0$KA^F~$9$k(B(va_dcl$B$N8e$m$K$O%;%_(B
        $B%3%m%s$rIU$1$J$$$3$H$KCm0U(B)$B!#(B

             References: K&R II Sec. 8.3 p. 174, Sec. B1.2 p. 245; H&S
             Sec. 17.12 p. 337; ANSI Secs. 4.9.6.7, 4.9.6.8, 4.9.6.9 .



Q7.3:   $B4X?t$,!"<B:]$K$$$/$D0z?t$rEO$5$l$?$+CN$kJ}K!$O$"$k$+!#(B

A7.3:   $B$3$N>pJs$O!"0\?"@-$N9b$$%W%m%0%i%`$K$O;H$($J$$!#8E$$%7%9%F%`$K(B
        $B$O!"I8=`$G$O$J$$(B nargs()$B4X?t$r;}$D$b$N$b$"$k$,!"$3$N4X?t$,Lr$K(B
        $B$?$D$+$OI,$:5?$C$?$[$&$,$$$$!#$3$N4X?t$O!"$?$$$F$$0z?t$N?t$G$O(B
        $B$J$/%o!<%I?t$rJV$9(B($B9=B$BN$HIbF0>.?tE@I=<($N?t$O$?$$$F$$!"4v$D(B
        $B$+$N%o!<%I$H$7$FEO$5$l$k(B)$B!#(B

        $B2DJQ8D$N0z?t$r<h$k4X?t$O!"0z?t<+?H$+$i0z?t$N?t$rH=CG$G$-$k$h$&(B
        $B$K:n$i$J$1$l$P$J$i$J$$!#(Bprintf$B$NN`$O!"%U%)!<%^%C%H<1JL;R(B(%d$B$N(B
        $BN`(B)$B$r%U%)!<%^%C%HJ8;zNs$+$iA\$7$F0z?t$N?t$rH=CG$9$k(B($B$@$+$i$3$N(B
        $B<j$N4X?t$O%U%)!<%^%C%HJ8;zNs$,0z?t$H0lCW$7$F$$$J$$$H$*$+$7$JF0(B
        $B:n$r$9$k(B)$B!#$h$/;H$&JL$N<j$H$7$F$O(B ($B0z?t$,$9$Y$FF1$87?$N$H$-$K(B
        $BJXMx$G$"$k(B)$B!"HVJ<(B(0$B!"(B-1$B$^$?$OE,Ev$J7?$K%-%c%9%H$7$?%L%k%]%$%s(B
        $B%?(B)$B$r%j%9%H$N:G8e$KCV$/$H$$$&$b$N$G$"$k(B (Q1.2$B$H(BQ7.1$B$N(Bexecl
        $B$H(Bvstrcat$B$NNc$r;2>H(B)$B!#(B



Q7.4:   va_arg$B%^%/%m$r;H$C$?$,!"4X?t$X$N%]%$%s%?$N%G!<%?7?$r;}$D0z?t$r(B
        $B<h$j=P$9$3$H$,$G$-$J$$!#(B

A7.4:   va_arg$B%^%/%m$r;H$&$3$H$K$h$k%G!<%?7?$N=q$-49$($O!"4X?t$X$N%]%$(B
        $B%s%?$J$I$N6KC<$KJ#;($J%G!<%?7?$rAj<j$K$9$k$H:$Fq$H$J$k!#$7$+(B
        $B$7!"4X?t$X$N%]%$%s%?7?$K(Btypedef$B$r;H$($P!"$9$Y$F$&$^$/$$$/$@$m(B
        $B$&!#(B

             References: ANSI Sec. 4.8.1.2 p. 124.



Q7.5:   $B2DJQ8D$N0z?t$r;}$A!"$=$N0z?t$rJL$N4X?t(B($B$=$N4X?t$b2DJQ8D$N0z$-(B
        $B?t$r<h$k(B)$B$KEO$94X?t$r$I$&$d$C$F5-=R$9$l$P$h$$$+!#(B

A7.5:   $B0lHLE*$K$O$G$-$J$$!#>e$NNc$N(Bvprintf$B$N$h$&$J(Bva_list$B%]%$%s%?$r<u(B
        $B$1IU$1$k4X?t$rMQ0U$7$J$1$l$P$J$i$J$$!#$b$70z?t$r(B(va_list$B%]%$%s(B
        $B%?$r;H$C$F4V@\E*$K$G$O$J$/(B)$BD>@\$K!"2DJQ8D$N0z?t$r<h$k4X?t$KEO(B
        $B$5$J$1$l$P$J$i$J$$$J$i(B ($BEO$5$l$kB&$N4X?t$K$D$$$F$bJL$N(Bva_list
        $B$r<u$1IU$1$k4X?t$rMQ0U$G$-$J$+$C$?$H$7$F(B)$B!"0\?"@-$N9b$$2r7h0F(B
        $B$OB8:_$7$J$$(B($B$3$NLdBj$O%^%7%s8GM-$N%"%;%s%V%i8@8l$r;H$($P2r7h(B
        $B$G$-$k(B)$B!#(B



Q7.6:   $B<B9T;~$K!"0z?t%j%9%H$r$D$/$C$F4X?t$r8F$S=P$9$3$H$,$G$-$k$+!#(B

A7.6:   $BF0$/$3$H$,J]>Z$5$l$kJ}K!$b0\?"@-$N9b$$J}K!$b$J$$!#6=L#$,$"$k$N(B
        $B$J$i$3$N%j%9%H$NJT<T$KJ9$$$F$_$k$3$H!#H`$O%X%s%F%3%j%s$J%"%$%G(B
        $B%"$r$$$/$D$+;}$C$F$$$k(B (Q16.11$B$b;2>H$N$3$H(B)$B!#(B



8.$B%V!<%k?t$HJQ?t(B

Q8.1:   $B%V!<%kCM$r(BC$B8@8l$G07$&$N$KE,@Z$J%G!<%?7?$O(B?$B$J$<%V!<%kCM$r07$&%G(B
        $B!<%?7?$,!"I8=`$GMQ0U$5$l$F$$$J$$$N$+!#??$H56$r$"$i$o$9$N(B
        $B$K!"(B#define$B$r;H$&$Y$-$+Ns5s7?$r;H$&$Y$-$+!#(B

A8.1:   C$B8@8l$O%V!<%k7?$rI8=`$G$OMQ0U$7$F$$$J$$!#%V!<%k7?$H$7$F!"%G!<(B
        $B%?7?$rA*$V$3$H$O6u4V(B/$B;~4V$N%H%l!<%I%*%U$H4X78$,$"$k!#$3$N$h$&(B
        $B$J%H%l!<%I%*%U$G$I$A$i$rA*Br$9$k$+$O%W%m%0%i%^$K$^$+$;$k$N$,0l(B
        $BHV$G$"$k(B(int$B$r%V!<%k7?$KA*$Y$PB.$$$@$m$&$7!"(Bchar$B$r%V!<%k7?$KA*(B
        $B$Y$P%G!<%?$NJ]B8NN0h$N@aLs$K$J$k(B)$B!#(B

        #define$B$r;H$&$+Ns5s7?$r;H$&$+$O$I$C$A$G$b$$$$$3$H$G!"$H$/$K6=(B
        $BL#$r0z$/$h$&$J$3$H$O$J$$(B(Q9.1$B$r;2>H$N$3$H(B)$B!#%W%m%0%i%`$d%W%m%8(B
        $B%'%/%H$G<sHx0l4S$7$F$$$k8B$j!"0J2<$N$I$l$r;H$C$F$b$+$^$o$J$$(B

                     #define TRUE 1             #define YES 1
                     #define FALSE 0            #define NO 0

                     enum bool {false, true};   enum bool {no, yes};


        $B$"$k$$$O@8$N(B1$B$H(B0$B$r;H$&$N$b$$$$(B($BJQ?t$NCM$rD4$Y$k$H$-$KNs5s7?$N(B
        $BCM$rE83+$7$F$/$l$k$h$&$J%G%P%C%,$r;H$C$F$$$k$N$G$"$l$P!"Ns5s7?(B
        $B$N$[$&$,$$$$$+$b$7$l$J$$(B)$B!#(B

        $B0J2<$N$h$&$JJQ7A$r9%$`?M$b$$$k!#(B

                     #define TRUE (1==1)
                     #define FALSE (!TRUE)


        $B$"$k$$$O(B"$BJd=u$N(B"$B%^%/%m!"Nc$($P(B

                     #define istrue(e) ((e) != 0)


        $B$rDj5A$9$k?M$b$$$k!#$I$A$i$K$7$F$bBg$7$?8z2L$O$J$$(B($B0J2<$r;2(B
        $B>H(B)$B!#(B



Q8.2:   TRUE$B$r(B1$B$K(B#define$B$9$k$3$H$O4m81$G$O$J$$$N$+!#$J$<$J$i!"(BC$B8@8l$G(B
        $B$O(B0$B$G$J$$CM$O$9$Y$F(B"$B??(B"$B$H9M$($i$l$k$+$i!#AH$_9~$_$N%V!<%kCM$r(B
        $BJV$91i;;;R$d4X781i;;;R$,(B1$B0J30$NCM$rJV$7$?$i$I$&$9$k$N$+!#(B

A8.2:   C$B8@8l$G$O!"$I$s$JHs(B0$B$NCM$b??$H9M$($i$l$k$3$H$O(B($B5$J,$N0-$$$3$H(B
        $B$@$1$I(B)$B??<B$G$"$k!#$7$+$7$3$N$3$H$O!VF~NO$K$*$$$F$N$_!W!"$9$J(B
        $B$o$A%V!<%kCM$,$/$k$3$H$r4|BT$5$l$F$$$k$H$3$m$G$@$1$J$j$?$D!#AH(B
        $B$_9~$_$N1i;;;R$K$h$C$F%V!<%kCM$,;:$_=P$5$l$k$H$-$O!"(B1$B$+(B0$B$G$"$k(B
        $B$3$H$,J]>Z$5$l$F$$$k!#$h$C$F%F%9%H(B

                     if ((a == b) == TRUE)


        $B$O(B(TRUE$B$,(B1$B$G$"$k$+$.$j(B)$B4|BT$7$?$H$*$j$N7k2L$rJV$9!#$7$+$7%P%+(B
        $B$2$?$3$H$G$"$k!#0lHL$K(BTRUE$B$d(BFALSE$B$rAj<j$KL@<(E*$K%F%9%H$9$k$3(B
        $B$H$OK>$^$7$/$J$$!#$J$<$J$i%i%$%V%i%j4X?t$NCf$K$O(B($BM-L>$J$N(B
        $B$O(Bisupper$B!"(Bisalpha$B$J$I(B)$B>r7o$,@.N)$7$?$H$-$KHs(B0$B$NCM$rJV$9$,!"$=(B
        $B$NCM$OI,$:$7$b(B1$B$G$O$J$$$b$N$,$"$k(B($B$5$i$K!"$b$77/$,(B"if((a == b)
        == TRUE)"$B$,(B"if(a == b)"$B$N2~NIHG$G$"$k$H?.$8$k$N$J$i!"$J$<$=$3(B
        $B$G;_$a$k$N$+!#$J$<(B"if (((a == b) == TRUE) == TRUE)"$B$r;H$o$J$$(B
        $B$N$+(B)$B!#$*$*$^$+$JL\0B$H$7$F$O!"(BTRUE$B$H(BFALSE$B$r(B($B$"$k$$$O;w$?J*$r(B)
        $B%V!<%kCM$r$"$i$o$9JQ?t$KBeF~$9$k:]$d!"4X?t$N0z?t!"%V!<%kCM$rJV(B
        $B$94X?t$NLa$jCM$H$7$F$@$1;H$&$3$H!#$1$C$7$FHf3S$K;H$C$F$O$$$1$J(B
        $B$$!#(B

        $B%W%j%W%m%;%C%5$N%^%/%m$N$&$A!"(BTRUE$B$d(BFALSE$B$O%3!<%I$N2DFI@-$r>e(B
        $B$2$k$N$K;H$&$N$G$"$C$F!"$"$i$o$9CM$,JQ$o$k2DG=@-$,$"$k$+$i;H$&(B
        $B$N$G$O$J$$(B(Q1.7$B$H(BQ1.9$B$r;2>H$N$3$H(B)$B!#(B

             References: K&R I Sec. 2.7 p. 41; K&R II Sec. 2.6 p. 42,
             Sec. A7.4.7 p. 204, Sec. A7.9 p. 206; ANSI Secs. 3.3.3.3,
             3.3.8, 3.3.9, 3.3.13, 3.3.14, 3.3.15, 3.6.4.1, 3.6.5;$B%"%-(B
             $B%l%9$H55(B



9.$B9=B$BN!"Ns5s7?!"6&MQBN(B

Q9.1:   $B%W%j%W%m%;%C%5$G(B#define$B$rJ#?t;H$&$3$H$H%3%s%Q%$%i$GNs5s7?$r;H(B
        $B$&$3$H$N0c$$$O!#(B

A9.1:   $B8=>u$G$O$[$H$s$I0c$$$O$J$$!#B?$/$N?M$,K>$s$@J}8~$H$OH?BP(B
        $B$K!"(BANSI$B5,3J$O!"Ns5s7?$H@0?t7?$r:.9g$7$F;H$C$F$bLdBj$J$$$H=R$Y(B
        $B$F$$$k(B($B$b$7$=$N$h$&$J:.9g$,L@<(E*$J%-%c%9%H$J$7$K$O;H$($J$$$H(B
        $B$7$?$i!"$h$/9M$($F;H$o$l$?Ns5s7?$K$h$j!"$"$k<o$N%W%m%0%i%_%s%0(B
        $B$N8m$j$rB*$($k$3$H$,$G$-$k$N$G$"$k$,(B)$B!#(B

        $BNs5s7?$N<g$JMxE@$H$7$F$OCM$,<+F0E*$KM?$($i$l$k$3$H$H!"%G%P%C%,(B
        $B$r;H$C$FNs5s7?$NCM$rD4$Y$k;~$K%G%P%C%,$,%7%s%\%j%C%/$JCM$rI=<((B
        $B$7$F$/$l$k$+$b$7$l$J$$$H$$$&$3$H!"$^$?Ns5sBN$,%V%m%C%/$N%9%3!<(B
        $B%W$r;}$D$3$H$,5s$2$i$l$k(B($B%3%s%Q%$%i$O!"Ns5s7?$H@0?t7?$r:.9g$7(B
        $B$F;H$o$l$?;~$K!"CWL?E*$G$O$J$$7Y9p$r=P$9$+$b$7$l$J$$!#$=$N$h$&(B
        $B$K:.$<$F;H$&$3$H$O!"87L)$K$$$($PJ8K!0cH?$G$O$J$$$1$l$I!"$h$/$J(B
        $B$$:nK!$H9M$($i$l$k$+$i$G$"$k(B)$B!#7gE@$H$7$F$O%W%m%0%i%^$,%5%$%:(B
        $B$r(B($B$5$C$-$NCWL?E*$G$J$$7Y9p$K$D$$$F$b(B)$B$[$H$s$I@)8f$G$-$J$$$3$H(B
        $B$,5s$2$i$l$k!#(B

             References: K&R II Sec. 2.3 p. 39, Sec. A4.2 p. 196; H&S
             Sec. 5.5 p. 100; ANSI Secs. 3.1.2.5, 3.5.2, 3.5.2.2 .



Q9.2:   $B9=B$BN$r!"JQ?t$KBeF~$9$k$3$H$b!"4X?t$K0z?t$H$7$FEO$9$3$H$b!"4X(B
        $B?t$NLa$jCM$H$7$F$b;H$&$3$H$b$G$-$k$HJ9$$$?!#$1$l$I8E$$(BK&R$B$K$O(B
        $B5-=R$,$J$$!#(B

A9.2:   K&R$B=iHG$K$O!"9=B$BN$X$N1i;;$N@)8B$O>-Mh$N%3%s%Q%$%i$G$O<h$j=|(B
        $B$+$l$k$@$m$&$H$"$k!#<B:](BK&R$B$N=iHG$,H/9T$5$l$?$3$m$N(BDennis
        Ritchie$B$N%3%s%Q%$%i$K$O!"9=B$BN$NBeF~$b9=B$BN$N0z?tEO$7$bMQ0U(B
        $B$5$l$F$$$?!#=i4|$N(BC$B%3%s%Q%$%i$NCf$K$O%5%]!<%H$7$F$$$J$$$b$N$b(B
        $BB8:_$7$?$,!"8=:_$N%3%s%Q%$%i$O$9$Y$F%5%]!<%H$7$F$$$k$7!"(BANSI C
        $B5,3J$N0lIt$G$b$"$k!#$h$C$F;H$&$3$H$r$?$a$i$&$3$H$O$J$$!#(B

             References: K&R I Sec. 6.2 p. 121; K&R II Sec. 6.2 p.
             129; H&S Sec. 5.6.2 p. 103; ANSI Secs. 3.1.2.5, 3.2.2.1,
             3.3.16 .



Q9.3:   $B$I$s$J;EAH$_$G9=B$BN$r0z?t$GEO$7$?$j!"4X?t$NLa$jCM$K;H$&$3$H$,(B
        $B$G$-$k$N$+!#(B

A9.3:   $B9=B$BN$,4X?t$N0z?t$H$7$FEO$5$l$k$H$-!"9=B$BNA4BN$,!"%9%?%C%/$K(B
        $BI,MW$J$@$1$N%o!<%I$r;H$C$F@Q$^$l$k(B($B%W%m%0%i%^$O!"$3$N%*!<%P!<(B
        $B%X%C%I$r7y$C$F9=B$BN$X$N%]%$%s%?$r$+$o$j$K$h$/;H$&(B)$B!#(B

        $B9=B$BN$O%3%s%Q%$%i$,MQ0U$9$kNN0h$KCV$+$l$F4X?t$+$iJV$C$F$/$k$N(B
        $B$,0lHLE*$G$"$k!#%3%s%Q%$%i$O!"$3$NNN0h$N%"%I%l%9$r!"FCJL$J(B"$B1#(B
        $B$l$?(B"$B0z?t$H$7$F!"8F$P$l$kB&$N4X?t$KEO$9!#8E$$%3%s%Q%$%i$NCf$K(B
        $B$O!"9=B$BN$rJV$9$N$KFCJL$J(Bstatic$B$NNN0h$r;H$&$b$N$b$"$k!#$3$l$O(B
        $B4X?t$r:FF~(B ($B%j%(%s%H%i%s%H(B)$BIT2D$K$9$k$N$G!"(BANSI C$B$O6X;_$7$F$$(B
        $B$k!#(B

             Reference: ANSI Sec. 2.2.3 p. 13.



Q9.4:   $B0J2<$N4X?t$O@5$7$$7k2L$r=PNO$9$k$1$l$I=*N;$7$?;~E@$G(Bcore$B$rEG(B
        $B$/!#$J$<$+!#(B

                     struct list
                     {
                         char *item;
                         struct list *next;
                     }


                     /* $B$3$3$+$i(Bmain$B%W%m%0%i%`$,;O$^$k(B */

                     main(argc, argv)


A9.4:   $B%;%_%3%m%s$,H4$1$?$3$H$,!"4X?t(Bmain$B$O9=B$BN$rJV$9$H%3%s%Q%$%i$K(B
        $B;W$$$3$^$;$F$7$^$C$?(B($B4V$KF~$C$?%3%a%s%H$,!"9=B$BN$H(Bmain$B$,7k$S(B
        $BIU$$$F$$$k$3$H$r$o$+$j$K$/$/$7$F$$$k(B)$B!#9=B$BN$rLa$jCM$H$7$F;}(B
        $B$D4X?t$O!"$?$$$F$$1#$l$?La$jCM$N%]%$%s%?$r;}$D$h$&$K<BAu$5$l$k(B
        $B$N$G!"(Bmain()$B$KBP$7$F@8@.$5$l$?%3!<%I$O(B3$B$D$N0z?t$r<h$m$&$H$9(B
        $B$k!#$3$N$&$A(B2$B$D$,EO$5$l$k(B($B$3$N>l9g$O!"(BC$B8@8l$N%9%?!<%H%"%C%W$N(B
        $B%3!<%I$K$h$C$F(B)$B!#(BQ17.15$B$r;2>H$N$3$H!#(B



Q9.5:   $B$J$<9=B$BN$rHf3S$9$k$3$H$O$G$-$J$$$N$+!#(B

A9.5:   $B9=B$BN$NHf3S$r!"Dc%l%Y%k$NA`:n$b$G$-$k$H$$$&(BC$B8@8l$NL#$o$$$KL7(B
        $B=b$9$k$3$H$J$/!"%3%s%Q%$%i$K$d$i$;$k6ZF;$NDL$C$?J}K!$O$J$$!#%P(B
        $B%$%HC10L$NHf3S$O!"9=B$BN$NCf$N;H$o$l$F$$$J$$(B"$B7j(B"($B$3$N$h$&$JKd(B
        $B$aAp$O!"8e$m$N%U%#!<%k%I$NG[CV$,@5$7$/$J$k$h$&$K;H$o$l$k(B)$B$,$"(B
        $B$k$3$H$r9M$($k$H;H$($J$$!#%U%#!<%k%IC10L$NHf3S$O!"Bg$-$J9=B$BN(B
        $B$,BP>]$N$H$-$K!"$H$s$G$b$J$$NL$N$/$jJV$7$N%$%s%i%$%s$N%3!<%I$r(B
        $BI,MW$H$9$k!#(B

        $BFs$D$N9=B$BN$rHf3S$7$?$$$N$J$i!"<+J,<+?H$G4X?t$r=q$+$J$1$l$P$J(B
        $B$i$J$$!#(B C++$B$r;H$($P!"(B==$B1i;;;R$K<+J,$GDj5A$7$?4X?t$r3d$jEv$F$k(B
        $B$3$H$,$G$-$k!#(B

             References: K&R II Sec. 6.2 p. 129; H&S Sec. 5.6.2 p.
             103; ANSI Rationale Sec. 3.3.9 p. 47.



Q9.6:   $B9=B$BN$r%G!<%?%U%!%$%k$+$iFI$`!"$^$?$O%G!<%?%U%!%$%k$K=q$-9~$`(B
        $B$N$O$I$&$9$l$P$h$$$+!#(B

A9.6:   fwrite$B$r;H$C$F9=B$BN$r%G!<%?%U%!%$%k$K=q$-9~$`$N$O$=$s$J$KFq$7(B
        $B$/$J$$!#(B

                     fwrite((char  *)&somestruct,  sizeof(somestruct),
                     1, fp);

        $B$3$l$KBP1~$9$k(Bfread$B$r;H$($PFI$_JV$9$3$H$,$G$-$k!#$7$+$7!"$3$&(B
        $B$d$C$F=q$-9~$s$@%G!<%?%U%!%$%k$O!"$?$$$7$F0\?"@-$,9b$$$o$1$G$O(B
        $B$J$$(B(Q9.11$B$H(BQ17.3$B$r;2>H$N$3$H(B)$B!#%U%!%$%k$r3+$/$H$-$KB?$/$N%7%9(B
        $B%F%`$G!V(Bb$B!W%U%i%0$,I,MW$J$3$H$K$bCm0U$9$k$3$H!#(B



Q9.7:   $BG[Ns(Bname$B$,J#?t$NMWAG$r;}$D$h$&$K?6$kIq$o$;$k$?$a$K9=B$BN$r0J2<(B
        $B$N$h$&$K@k8@$7$F!"%H%j%C%-!<$J%a%b%j3d$jEv$F$r$7$F$$$k%3!<%I$r(B
        $B8+$+$1$?!#$3$N%3!<%I$O5v$5$l$k$N$+!#$^$?5v$5$l$k$H$7$F0\?"@-$O(B
        $B9b$$$N$+!#(B

                     struct name {
                         int namelen;
                         char name[1];
                     };


A9.7:   $B$3$N%F%/%K%C%/$OM-L>$G$"$k!#(BDennis Ritchie$B$O!V%3%s%Q%$%i$X$NIT(B
        $BEv$JFk$lFk$l$7$5!W$H8F$s$@!#(B ANSI$B2r<a5,B'(B(ANSI Interpretation
        Ruling)$B$O!"$3$l$O(B($B$b$C$H@53N$K$O!"L>A0IU$-%U%#!<%k%I(B(name
        field)$B$KBP$7$FDj5A$7$?Bg$-$5$r1[$($F%"%/%;%9$9$k$3$H(B)$B5,B'$K87(B
        $BL)$K$O=`5r$7$F$$$J$$$H9M$($F$$$k!#$3$N5;K!$,@5$7$$$+$I$&$+$r<h(B
        $B$j4,$/5DO@$r==J,$K07$&$3$H$O!"$3$N(BFAQ$B$NHO0O$r1[$($F$$$k!#$7$+(B
        $B$7@$$NCf$KCN$i$l$F$$$kA4$F$N%3%s%Q%$%i$N<BAu$K$D$$$F!"$3$NJ}K!(B
        $B$O0\?"@-$,9b$$$h$&$G$"$k(B ($BG[Ns$N6-3&$rCm0U?<$/%A%'%C%/$9$k%3%s(B
        $B%Q%$%i$O7Y9p$r=P$9$+$b$7$l$J$$(B)$B!#(B

        $BBg;v$r<h$k$K$O!"2DJQD9$NMWAG$NBg$-$5$rHs>o$KBg$-$/<h$k$[$&$,!"(B
        $B>.$5$/<h$k$h$j$OK>$^$7$$$+$b$7$l$J$$!#>e$NNc$G$$$($P!"(B

                     char name[MAXSIZE];

        $B$3$3$G(BMAXSIZE$B$OJ]B8$5$l$k$I$NL>A0$h$j$bBg$-$$(B($B$3$&$$$&$U$&$K=$(B
        $B@5$5$l$?5;K!$O5,3J$K=`5r$7$F$k$H$$$&(B)$B!#(B

             References: ANSI Rationale Sec. 3.5.4.2 pp. 54-5.



Q9.8:   $B9=B$BNFb$N%U%#!<%k%I$N%P%$%H%*%U%;%C%H$rCN$kJ}K!$O!#(B

A9.8:   ANSI C$B$O!"(Boffsetof$B%^%/%m$rMQ0U$7$F$$$k$N$G!"MQ0U$5$l$F$$$k>l9g(B
        $B$O;H$&$3$H!#(B<stddef.h>$B$r;2>H!#$b$7<j$KF~$l$k$3$H$,$G$-$J$1$l(B
        $B$P!"?dA&$G$-$k<BAu$O0J2<$N$b$N$G$"$k!#(B
             #define offsetof(type, mem) ((size_t) \
                     ((char *)&((type *) 0)->mem - (char *)((type *
             0)))
        $B$3$N<BAu$b(B100%$B$N0\?"@-$r;}$D$o$1$G$O$J$$!#%3%s%Q%$%i$NCf$K$O!"(B
        $B$O$M$D$1$k$b$N$,$"$k$+$b$7$l$J$$$,!"$=$l$O$=$l$GMx$K$+$J$C$F$$(B
        $B$k!#(B

        $B<!$N<ALd$X$N2rEz$r!";H$$J}$N;29M$K$9$k$3$H!#(B

             References: ANSI Sec. 4.1.5 , Rationale Sec. 3.5.4.2 p.
             55.



Q9.9:   $B$I$&$d$l$P9=B$BN$N%U%#!<%k%I$r!"<B9T;~$KL>A0$G%"%/%;%9$G$-$k(B
        $B$+!#(B

A9.9:   $B$^$:(Boffsetof()$B%^%/%m$r;H$C$FL>A0$H%*%U%;%C%H$NBP1~I=$rMQ0U$9(B
        $B$k!#9=B$BN(Ba$B$N%U%#!<%k%I(Bb$B$N%*%U%;%C%H$O!"(B

             offsetb = offsetof(struct a, b);

        $B$GM?$($i$l$k!#$b$70J2<$N<0$G(Bstructp$B$,!"9=B$BN$N<BBN$X$N%]%$%s(B
        $B%?$G!"(Bb$B$,>e$G7W;;$7$?%*%U%;%C%H$r;}$D(Bint$B$N%U%#!<%k%I$H$9$k$H!"(B
        b$B$NCM$O4V@\E*$K(B

             *(int *)((char *)structp + offsetb) = value;

        $B$H$7$FF@$i$l$k!#(B



Q9.10:  $B9=B$BN$K(Bsizeof$B1i;;;R$r;H$C$?$i!";d$,;W$C$F$$$?$h$j$bBg$-$JBg$-(B
        $B$5$rJV$7$F$-$?!#$^$k$G!"$*$7$j$K5M$aJ*$,$7$F$"$k$h$&$@!#(B

A9.10:  $B9=B$BN$O!"9=B$BN$rO"B3E*$KG[CV$7$?$H$-$K3F9=B$BN$N@hF,$,@0Ns$9(B
        $B$k$h$&$K!"$3$N$h$&$J5M$aJ*$r(B($BFbIt$N5M$aJ*$N$h$&$K(B:Q9.5$B$r;2>H(B)
        $B;}$D>l9g$,$"$k!#(B



Q9.11:  $B;d$,;H$C$F$$$k%3%s%Q%$%i$O!"9=B$BN$NFbIt$K7j$r3+$1$k$N$GNN0h$O(B
        $BL5BL$K$J$k$7!"%G!<%?$rJ]B8$7$?30It$N%U%!%$%k$KBP$7$F(B"$B%P%$%J%j(B"
        $B$GF~=PNO$9$k$3$H$,$G$-$J$$!#$3$NKd$aAp$r;_$a$?$j!"9=B$BN$N@0Ns(B
        $B$r@)8f$9$k$3$H$O$G$-$J$$$N$+!#(B

A9.11:  $B7/$,;H$C$F$$$k%3%s%Q%$%i$O!"$3$N@)8f$r$*$3$J$&3HD%5!G=$r(B($B$?$V(B
        $B$s(B#pragma$B$G(B)$BMQ0U$7$F$$$k$+$b$7$l$J$$!#$?$@$7I8=`2=$5$l$?J}K!$O(B
        $B$J$$!#(B Q17.2$B$r;2>H$N$3$H!#(B



Q9.12:  $B6&MQBN$r=i4|2=$9$k$3$H$O$G$-$k$+!#(B

A9.12:  $B6&MQBN$N:G=i$N%a%s%P$r=i4|2=$K;H$&$3$H$r(BANSI C$B5,3J$O5v$7$F$$(B
        $B$k!#B>$N%a%s%P$r=i4|2=$9$kI8=`E*$JJ}K!$O$J$$(B(ANSI$B5,3J@.N)$h$j(B
        $BA0$N%3%s%Q%$%i$G$O!"$?$$$F$$$I$N%a%s%P$r;H$C$F$b=i4|2=$9$k$3$H(B
        $B$O$G$-$J$+$C$?(B)$B!#(B



Q9.13   $B9=B$BN$r0z?t$H$7$F<h$k%k!<%A%s$KDj?tCM$r$I$&$d$C$FEO$;$P$h$$(B
        $B$+!#(B

A9.13   C$B8@8l$K$OL>A0$N$J$$9=B$BN$NCM$r:n$j=P$9J}K!$OB8:_$7$J$$!#0l;~(B
        $BE*$J9=B$BN$rMQ0U$7$F!"$=$NCM$r;H$o$J$1$l$P$$$1$J$$!#(B



10.$B@k8@(B

Q10.1:  $B$I$N@0?t7?$r;H$($P$h$$$+!"$I$&$d$C$F7h$a$l$P$h$$$+!#(B

A10.1:  $BBg$-$JCM(B(32767$B$h$jBg$-$JCM$+!"(B-32767$B$h$j>.$5$$CM(B)$B$,I,MW$J(B
        $B$i(Blong$B$r;H$(!#$b$7%a%b%j$N8zN($r5$$K$9$k$J$i(B($BBg$-$JG[Ns$H$+B?(B
        $B$/$N9=B$BN$J$I(B) short$B$r;H$(!#$I$&$G$b$$$$$J$i(Bint$B$r;H$(!#L@NF$J(B
        $B%*!<%P!<%U%m!<$N;~$N@-<A$NL@3N$J$3$H$,Bg;v$GIi$NCM$,ITMW$J$i!"(B
        $BBP1~$9$kId9f$J$7$N@0?t$r;H$((B($B$?$@$7Id9fIU$HId9f$J$7$N@0?t$N:.(B
        $B:_$K$OCm0U$9$k$3$H(B)$B!#F1$8$h$&$J5DO@$,(Bfloat$B$r$D$+$&$Y$-$+(B dou-
        ble$B$r;H$&$Y$-$+$N5DO@$K$b$"$F$O$^$k!#(B

        char$B$d(Bunsigned char$B$r!V>.$5$J!W@0?t$H$7$F;H$&$3$H$O$G$-$k$,!"(B
        $B$=$&$9$k$3$H$K$h$kM=A[ITG=$JId9f3HD%$NLdBj$H%3!<%I%5%$%:$NA}2C(B
        $B$r9M$($k$H!"$=$N2ACM$h$j$bH<$&LLE]$N$[$&$,Bg$-$$!#(B

        $BJQ?t$N%"%I%l%9$,I,MW$G!"$=$N%"%I%l%9$N7?$,FCDj$N7?$G$J$1$l$P$J(B
        $B$i$J$$>l9g$O!">e5-$N%k!<%k$OL@$i$+$K$"$F$O$^$i$J$$!#(B

        $B$J$s$i$+$NM}M3$G7h$^$C$?Bg$-$5$K2?$+$r@k8@$9$kI,MW$,$"$k$H$-(B
        $B$b!"<+J,$,A*Br$7$?J}K!$rE,@Z$J(Btypedef$B$G1#$9$3$H(B ($B$3$s$J$3$H$r(B
        $B$7$J$1$l$P$$$1$J$$M}M3$O!"$?$$$F$$30$+$i2!$7IU$1$i$l$?J]B8NN0h(B
        $B$N7A$K9g$o$;$k$?$a$G$"$k!#$3$N$h$&$J>l9g$K$D$$$F$O(BQ17.2$B$r;2>H(B
        $B$N$3$H(B)$B!#(B



Q10.2:  $B:G6a=P$@$7$?(B64$B%S%C%H%^%7%s$N!"(B64$B%S%C%H@0?t$N%G!<%?7?$O2?$G$"$k(B
        $B$Y$-$+!#(B

A10.2:  64$B%S%C%H%^%7%s8~$1$N(BC$B8@8l$N%Y%s%@!<$N0lIt$O!"(B 64$B%S%C%H$N(Blong$B@0(B
        $B?t7?$r%5%]!<%H$7$F$$$k!#4{B8$N%3!<%I$N$"$^$j$K$bB?$/$,(B
        sizeof(int) == sizeof(long) == 32$B%S%C%H$H$$$&$3$H$KMj$C$F$$$k(B
        $B$3$H$r62$l$F!"?7$?$K(B64$B%S%C%H$N(Blong long(__longlong$B$N>l9g$b$"(B
        $B$k(B)$B$H$$$&@0?t7?$rF3F~$7$?%Y%s%@!<$b$$$k!#(B

        $B%]!<%?%V%k$J%3!<%I$r=q$/$3$H$K4X?4$N$"$k%W%m%0%i%^$O!"(B64$B%S%C%H(B
        $B$NBg$-$5$N%G!<%?7?$,I,MW$G$"$k$H$$$&$3$H$rE,@Z$J(Btypedef$B$G1#$5(B
        $B$J$1$l$P$J$i$J$$!#?7$7$$!"$b$C$HBg$-$J@0?t7?$rF3F~$;$6$k$r$($J(B
        $B$$$H9M$($F$$$k%Y%s%@!<$O!"?7$7$$@0?t7?$r!V>/$J$/$H$b(B64$B%S%C%H$"(B
        $B$k!W(B($B$=$l$OK\Ev$K?7$7$$7?$G$"$k!#=>Mh$N(BC$B$K$O$J$$(B)$B$H@kEA$9$Y$-(B
        $B$G!"!V$T$C$?$j(B64$B%S%C%H!W$H$O@kEA$9$Y$-$G$O$J$$!#(B



Q10.3:  $B%j%s%/IU%j%9%H$r$&$^$/Dj5A$9$k$3$H$,$G$-$J$$!#(B

                     typedef struct
                         {
                         char *item;
                         NODEPTR next;
                         } *NODEPTR;


        $B>e5-$N%3!<%I$r=q$$$?$,%3%s%Q%$%i$O%(%i!<$rJV$9!#(BC$B$N9=B$BN$O<+(B
        $B?H$X$N%]%$%s%?$r<h$k$3$H$,$G$-$J$$$N$+!#(B

A10.3:  C$B$N9=B$BN$O!"<+?H$X$N%]%$%s%?$rMWAG$H$7$F;}$D$3$H$,$G$-$k!#(BK&R
        $B$N(B6.5$B>O$N5DO@$HNc$,!"$3$NE@$rL@$i$+$K$7$F$/$l$k!#>e5-$N%3!<%I(B
        $B$NLdBj$O(BNODEPTR$B$N(B typedef$B$,!V(Bnext$B!W%U%#!<%k%I$r@k8@$7$?;~E@$G(B
        $B$O40@.$7$F$$$J$$$3$H$G$"$k!#=$@5$9$k$K$O:G=i$K9=B$BN$K%?%0$rIU(B
        $B$1(B($B!V(Bstructnode$B!W(B)$B!"<!$K(Bnext$B%U%#!<%k%I$r!V(Bstruct node*next;$B!W(B
        $B$KJQ99$7!"(Btypedef$B$N@k8@$r9=B$BN$N@k8@$N$^$k$C$-$jA0$+!"$^$k$C(B
        $B$-$j8e$m$K;}$C$F$/$k!#=$@0HG$N0l$D$O0J2<$N$h$&$K$J$k!#(B

                     struct node
                              {
                              char *item;
                              struct node *next;
                              };

                     typedef struct node *NODEPTR;

        $B>/$J$/$H$bB>$K(B3$B<oN`$N=$@0J}K!$,$"$k!#8_$$$K8_$$$r;2>H$9$k9=B$(B
        $BBN$NAH$r(B typedef$B$7$h$&$H$9$k$H!"F1$8$h$&$JLdBj$,;}$A>e$,$k$N(B
        $B$G!"F1$8$h$&$J2r7h:v$r<h$l$P$$$$!#(B

             References: K&R I Sec. 6.5 p. 101; K&R II Sec. 6.5 p.
             139; H&S Sec. 5.6.1 p. 102; ANSI Sec. 3.5.2.3 .



Q10.4:  char$B$X$N%]%$%s%?$rJV$94X?t$X$N%]%$%s%?$rJV$94X?t$X$N%]%$%s%?(BN
        $B8D$+$i$J$kG[Ns$r$I$&$d$C$F@k8@$9$l$P$h$$$+!#(B

A10.4:  $B$3$N<ALd$O>/$J$/$H$b(B3$B$D$NJ}K!$GEz$($k$3$H$,$G$-$k!#(B

        1    ($B$$$-$J$j(B)
             char *(*(*a[N])())();

        2    $B@k8@$r(Btypedef$B$r;H$C$FCJ3,E*$K:n$j=P$9!#(B
             typedef char *pc;            /* char$B$X$N%]%$%s%?(B */
             typedef pc fpc();               /* char$B$X$N%]%$%s%?$rJV$9(B
             $B4X?t(B */
             typedef fpc *pfpc;           /*$B>e5-$X$N%]%$%s%?(B */
             typedef pfpc fpfpc();           /*$B!D$rJV$94X?t(B */
             typedef fpfpc *pfpfpc;       /*$B!D$r;X$9%]%$%s%?(B */
             pfpfpc a[N];                    /*$B!D$NG[Ns(B */

        3    cdecl$B$r;H$(!#(Bcdecl$B$O1Q8l$NJ8$r(BC$B$NJQ?t@k8@$KJQ49$7!"$^$?$=(B
             $B$N5UJQ49$r9T$&!#(B

                     cdecl> declare a as array of pointer to function returning pointer
                     to function returning pointer to char
                     char *(*(*a[])())()

             cdecl$B$O!"J#;($J@k8@$r%-%c%9%H$r;H$C$F@bL@$7$F$/$l$k$7!"0z(B
             $B?t$,$I$N3g8L$NAH$KF~$k$+<($7$F$/$l$k(B($B>e5-$N$h$&$JJ#;($J4X(B
             $B?t$NDj5A$G$O(B)$B!#$$$/$D$+$N%P!<%8%g%s$N(Bcdecl
             $B$,(Bcomp.sources.UNIX$B$N%\%j%e!<%`(B14$B$KJ]B8$5$l$F$$$k$7(B
             (Q17.8$B;2>H(B)K&R$BBhFsHG$K$bB8:_$9$k!#(B

        C$B$K4X$9$k$I$s$J$h$$652J=q$b!"$3$l$i$NJ#;($J(BC$B$N@k8@$r!VFb$+$i30(B
        $B$X!WFI$`J}K!$K$D$$$F65$($F$/$l$k!#(B

             References: K&R II Sec. 5.12 p. 122; H&S Sec. 5.10.1 p.116



Q10.5:  $B:#!">uBV%^%7%s$r:n$C$F$$$k!#$3$N>uBV%^%7%s$N>uBV$4$H$K4X?t$rMQ(B
        $B0U$9$k!#3F4X?t$,!"<!$N>uBV$N4X?t$X$N%]%$%s%?$rJV$9$3$H$G>uBV$N(B
        $BA+0\$r<BAu$7$?$$!#$3$3$^$GMh$F(BC$B8@8l$N@k8@$N;EAH$_$G$O8B3&$,$"(B
        $B$k$N$K5$IU$$$?!#$3$l$i$N4X?t$r!"!V4X?t$X$N%]%$%s%?$rJV$94X?t$X(B
        $B$N%]%$%s%?$rJV$94X?t$X$N%]%$%s%?$rJV$94X?t$X$N%]%$%s%?!D!W$HDj(B
        $B5A$9$k$3$H$O$G$-$J$$!#(B

A10.5:  $BD>@\$KDj5A$9$k$3$H$O$G$-$J$$!#HFMQ$N4X?t%]%$%s%?$rJV$94X?t$rMQ(B
        $B0U$7$F!"$=$N%]%$%s%?$r;H$C$F<!$N4X?t$r8F$VA0$K%-%c%9%H$r9T$&!#(B
        $B$^$?$O4X?t$,9=B$BN$rJV$9$h$&$K$9$k!#$=$N9=B$BN$O!"$=$N4X?t$X$N(B
        $B%]%$%s%?$@$1$r%a%s%P$K;}$D$h$&$K$9$k!#(B



Q10.6:  $B;d$,;H$C$F$$$k%3%s%Q%$%i$O!V4X?t$NITEv$J:F@k8@!W$@$HJ86g$r$D$1(B
        $B$k!#0lEYDj5A$7$F!"0l2s8F$s$G$k$@$1$J$N$K!#(B

A10.6:  $B4X?t$r8F$S=P$9$H$3$m$N%9%3!<%WFb$K4X?t$N@k8@$,$J$$$H$-$O(B ($B$"$k(B
        $B$$$O@k8@$h$j$bA0$G4X?t$,8F$P$l$F$$$k$H$-!"(B)$B$=$N4X?t$,(Bint$B$rJV$9(B
        $B$H@k8@$5$l$F$$$k$H9M$($k!#$=$N$?$a!"8e$G4X?t$,(Bint$B0J30$rJV$9$H(B
        $B@k8@$5$l$k$HIT0lCW$,@8$8$k!#(B int$B$rJV$5$J$$4X?t$O!"8F$S=P$9A0$K(B
        $B@k8@$7$J$1$l$P$J$i$J$$!#(B

             References: K&R I Sec. 4.2 pp. 70; K&R II Sec. 4.2 p. 72;
             ANSI Sec. 3.3.2.2 .



Q10.7:  $B%0%m!<%P%kJQ?t$r@k8@(B/$BDj5A$9$k0lHV$$$$J}K!$O!#(B

A10.7:  $B$^$:!"%0%m!<%P%k$J(B($B87L)$K$$$($P!V30It$N(B(external)$B!W(B)$BJQ?t(B($B$^$?(B
        $B$O4X?t(B)$B$N@k8@$OJ#?tB8:_$9$k$+$b$7$l$J$$$,!"Dj5A$O$?$@0l$D$7$+(B
        $BB8:_$7$F$O$J$i$J$$(B($BDj5A$O<B:]$KNN0h$r3d$jEv$F=i4|CM$,$"$l$P=i(B
        $B4|CM$rM?$($k@k8@$G$"$k(B)$B!#Dj5A$r$I$3$+Cf?4$H$J$k(B($B%W%m%0%i%`$+%b(B
        $B%8%e!<%k$N(B).c$B%U%!%$%k$KCV$$$F!"30ItJQ?t@k8@$r%X%C%@(B(.h)$B%U%!%$(B
        $B%k$KCV$/!#$=$N%X%C%@%U%!%$%k$O!"@k8@$,I,MW$J$H$3$m$9$Y$F(B
        $B$G(B#include$B$9$k!#Dj5A$r=q$$$?(B.c$B%U%!%$%k$b!"30It@k8@$r=q$$$?%X%C(B
        $B%@%U%!%$%k$r%$%s%/%k!<%I$9$k$N$,$h$$!#$=$&$9$l$P!"%3%s%Q%$%i$O(B
        $B@k8@$,9g$C$F$$$k$+$I$&$+%A%'%C%/$G$-$k!#(B

        $B$3$N%k!<%k$O0\?"@-$NEY9g$r9b$a$k$7!"(BANSI C$B5,3J$NI,MW$H$7$F$$$k(B
        $B$H$3$m$H0lCW$9$k!#(BUNIX$B$N%3%s%Q%$%i$d%j%s%+$O!V6&DL%b%G%k(B(com-
        monmodel)$B!W$r;H$C$F$$$k$N$GJ#?t8D$N(B($B=i4|2=$rH<$o$J$$(B)$B@k8@$r5v(B
        $B$7$F$$$k$3$H$KCm0U$9$k$3$H!#JQ$F$3$j$s$J%7%9%F%`$G$O!"Dj5A$H30(B
        $BIt@k8@$r6hJL$9$k$?$a$KL@<(E*$J=i4|2=$rI,MW$H$9$k$+$b$7$l$J$$!#(B

        $B%W%j%W%m%;%C%5$N%H%j%C%/$r;H$($P!"%X%C%@!<%U%!%$%k$G0lEY$@$1@k(B
        $B8@$7$F!"FCJL$J(B#define$B$r;H$&$3$H$G0l2s$N(B#include$B$G$@$1JQ?t$rDj(B
        $B5A$9$k$3$H$,$G$-$k!#(B

             References: K&R I Sec. 4.5 pp. 76-7; K&R II Sec. 4.4 pp.
             80-1; ANSI Sec. 3.1.2.2 (esp. Rationale), Secs. 3.7,
             3.7.2, Sec. F.5.11 .



Q10.8:  $B4X?t@k8@$NA0$N(Bextern$B$O2?$r0UL#$9$k$N$+!#(B

A10.8:  $B$3$&$$$&=q$-J}$r$9$k$3$H$G!"4X?t$NDj5A$,$?$V$sJL$N%=!<%9%U%!%$(B
        $B%k$K$"$k$3$H$r!"$[$N$a$+$9$3$H$,$G$-$k!#$7$+$70J2<$N(B2$B$D$K0c$$(B
        $B$O$J$$!#(B

                     extern int f();
                     int f();


             References: ANSI Sec. 3.1.2.2 .



Q10.9:  $B$d$C$H$N$3$H$G4X?t$X$N%]%$%s%?$r@k8@$9$k9=J8$rM}2r$7$?!#$5$F$I(B
        $B$&$d$C$F$3$l$r=i4|2=$9$l$P$h$$$+!#(B

A10.9:  $B0J2<$N$h$&$JJ}K!$r<h$l!#(B

                     extern int func();
                     int (*fp)() = func;


        $B4X?tL>$,!"<0$K8=$o$l$?$,<B9T$5$l$J$$$H$-$O(B($B$9$J$o$A8e$m$K(B"("$B$,(B
        $B$D$+$J$$$H$-(B)$B!"G[NsL>$N$h$&$K%]%$%s%?$K@.$j2<$,$k!#(B

        $B$3$N$H$-0lHL$K4X?t$NL@<(E*$J(Bextern$B@k8@$,I,MW$G$"$k!#$J$<$J$i$3(B
        $B$N>l9g!"0EL[$N(Bextern$B@k8@$O5/$3$i$J$$$+$i(B ($B$3$3$G$b4X?tL>$N8e$m(B
        $B$K(B"("$B$,$D$$$F$$$J$$$+$i(B)$B!#(B



Q10.10: $B4X?t$X$N%]%$%s%?$r;H$C$?JL$NJ}K!$r8+$?$3$H$,$"$k!#(B

A10.10: $B$b$H$b$H$O4X?t$X$N%]%$%s%?$O(B*$B1i;;;R$r;H$C$F(B($B$+$DM%@h=g0L$r$O$C(B
        $B$-$j$5$;$k$?$a$N$*$^$1$N$+$C$3$r;H$C$F(B)"$BK\J*$N(B"$B4X?t$XJQ49$7$J(B
        $B$1$l$P$J$i$J$+$C$?!#(B

                     int r, f(), (*fp)() = f;
                     r = (*fp)();

        $B$^$?0J2<$N$h$&$K<gD%$9$k$3$H$b2DG=$G$"$k!#4X?t$O>o$K%]%$%s%?7P(B
        $BM3$G5/F0$5$l(B"$BK\J*$N(B"$B4X?t$O%]%$%s%?$K@.$j2<$,$k(B($B<0$NCf$G!"=i4|(B
        $B2=$N$H$-$HF1$8MM$K(B)$B$+$i2?$bLdBj$O$J$$!#$3$&$$$&N"IU$1$,(Bpcc$B$rDL(B
        $B$7$F9-$,$j(BANSI$B5,3J$K$b:NMQ$5$l$?!#$9$J$o$A!"(B

                     r = fp();


        $B$O(Bfp$B$,4X?t$G$b!"4X?t$X$N%]%$%s%?$G$b@5$7$/LdBj$J$/F0$/(B ($B$3$N=q(B
        $B$-J}$O;O$a$+$i$"$$$^$$$5$NF~$kM>CO$NL5$$$b$N$G$"$C$?!#4X?t$X$N(B
        $B%]%$%s%?$K0z?t$,B3$$$F$$$l$P!"$=$N%]%$%s%?$rDL$7$F<B9T$9$k$7$+(B
        $B;EJ}$,$J$$$b$N(B)$B!#(B*$B$r=q$/$3$H$O32$,$J$$$7!":#$^$GDL$j5v$5$l$k(B(
        $B5v$5$l$k$I$3$m$+!"8E$$%3%s%Q%$%i$H$N8_49@-$,=EMW$G$"$l$P;H$&$3(B
        $B$H$r4+$a$k(B)$B!#(B

             References: ANSI Sec. 3.3.2.2 p. 41, Rationale p. 41.



Q10.11: auto$B$H$$$&%-!<%o!<%I$O2?$rI=$o$9$N$+!#(B

A10.11: $B2?$b$J$$!#$=$l$O;~BeCY$l$@!#(B



11. Stdio

Q11.1:  $B$J$<0J2<$N%3!<%I$O$&$^$/F0$+$J$$$N$+!#(B

                     char c;
                     while((c = getchar()) != EOF)...


A11.1:  getchar$B$NLa$jCM$r3JG<$9$kJQ?t$O(Bint$B$G$J$1$l$P$J$i$J$$!#(B getchar
        $B$O!"$"$i$f$k(BASCII$BJ8;z$NCM$rJV$9$@$1$G$J$/(BEOF$B$bJV$9!#(B getchar$B$N(B
        $BLa$jCM$r(Bchar$B$GEO$9$H!"IaDL$N(BASCII$BJ8;z$,(BEOF$B$H2r<a$5$l$?$j!"(B EOF
        $B$,B>$N$b$N$KJQ$($i$l$F(B($BFC$K%G!<%?7?(Bchar$B$,Id9g$J$7$N>l9g(B)$B!"$$$D(B
        $B$K$J$C$F$b(BEOF$B$,=P$F$3$J$$$+$b$7$l$J$$!#(B

             References: CT&P Sec. 5.1 p. 70.



Q11.2:  $B$I$&$9$l$P!"(Bprintf$B$N%U%)!<%^%C%HJ8;zNs$r;H$C$F(B'%'$B$r=PNO$G$-$k(B
        $B$N$+!#(B \%$B$r;n$7$?$1$l$I!"$&$^$/$$$+$J$+$C$?!#(B

A11.2:  %%$B$H!"(B%$B$rFs2sB3$1$F=q$1!#(B
             References: K&R I Sec. 7.3 p. 147; K&R II Sec. 7.2 p.
             154; ANSI Sec. 4.9.6.1 .



Q11.3:  $B$J$<%3!<%I(Bscanf("%d", i);$B$,$&$^$/F0$+$J$$$N$+!#(B

A11.3:  scanf$B$O!"CM$r=q$-9~$`JQ?t$X$N%]%$%s%?$rI,MW$H$9$k!#(B
        scanf("%d", &i);$B$H=q$+$J$1$l$P$J$i$J$$!#(B



Q11.4:  $B$J$<0J2<$N%3!<%I$OF0$+$J$$$N$+!#(B

                     double d; scanf("%f", &d);


A11.4:  scanf$B$G$O(Bdouble$B$K$O(B%lf$B$r!"(B float$B$K$O(B%f$B$r;H$&(B(printf$B$H$NIT0lCW(B
        $B$KCm0U$9$k$3$H!#(Bprintf$B$O!"(BC$B8@8l$N0z?t$N7?$N3J>e$2$N%G%U%)%k%H(B
        $B$N5,B'$K$h$j(B double$B$K$b(Bfloat$B$K$b(B%f$B$r;H$&(B)$B!#(B



Q11.5:  $B$J$<0J2<$N%3!<%I$O$&$^$/F0$+$J$$$N$+!#(B

                     while(!feof(fp)) {
                        fgets(buf, MAXLINE, fp);
                        fputs(buf, outfp); }


A11.5:  C$B8@8l$N(BI/O$B$O!"(BPascal$B$N(BI/O$B$H$O0[$J$k!#(BEOF$B$O!"F~NO%k!<%A%s$,FI$b(B
        $B$&$H$7$F%U%!%$%k$N=*$o$j(B(End-Of-File)$B$K$?$I$jCe$$$?8e$G$"$k$3(B
        $B$H$r<($7$F$$$k!#$?$$$F$$$OF~NO4X?t(B($B$3$N>l9g$O(Bfgets)$B$NLa$jCM$r(B
        $B%A%'%C%/$9$l$P$h$$!#(B feof()$B$r;H$&I,MW$,A4$/$J$$>l9g$,B?$$!#(B



Q11.6:  $B$J$<(Bgets()$B$r;H$&$J$HC/$b$,8@$&$N$+!#(B

A11.6:  gets$B$G$O!"$3$l$+$iFI$b$&$H$7$F$$$k%P%C%U%!$NBg$-$5$r;XDj$G$-$J(B
        $B$$$N$G!"%P%C%U%!$,$"$U$l$F$7$^$&$3$H$rKI$0$3$H$,$G$-$J$$!#(B
        Q3.1$B$N!"(Bgets()$B$NBe$o$j$K(Bfgets()$B$r;H$&J}K!$r@bL@$7$?%3!<%I$NCG(B
        $BJR$r;29M$N$3$H!#(B



Q11.7:  $B$J$<(Bprintf$B$r8F$V$HJQ?t(Berrno$B$K(BENOTTY$B$,@_Dj$5$l$k$N$+!#(B

A11.7:  stdio$B%Q%C%1!<%8$NB?$/$N<BAu$O(Bstdout$B$N@h$,C<Kv$N$H$-$O?6$kIq$$(B
        $B$r>/$7JQ$($k!#$3$&$$$&<BAu$G$O!"=PNO@h$rH=CG$9$k$?$a$K(Bstdout$B$N(B
        $B@h$,%?!<%_%J%k$G$J$$$H$-$OI,$:<:GT$9$kA`:n(B($B$3$l$,(BENOTTY$B$H@_Dj(B
        $B$9$k(B)$B$r$*$3$J$&!#$h$C$F=PNO$NA`:n$,40A4$K@.8y$9$k$K$b$+$+$o$i(B
        $B$:(Berrno$B$NCM$O(BENOTTY$B$H$J$k!#(B

             References: CT&P Sec. 5.4 p. 73.



Q11.8:  $B;d$N%W%m%0%i%`$N%W%m%s%W%H$HCf4V=PNO$,!"2hLL>e$K$"$i$o$l$J$$$3(B
        $B$H$,$"$k!#FC$K!"%Q%$%W$rDL$7$F=PNO$rB>$N%W%m%0%i%`$KEO$7$?$H$-(B
        $B$K!"$3$NLdBj$,5/$3$k!#(B

A11.8:  $B=PNO$,8+$($FM_$7$$$H$3$m$G$O!"I,$:L@<(E*$K(Bfflush$B$r;H$C$F=PNO$r(B
        $B$O$-$@$9$3$H!#$[$C$F$*$$$F$b$$$/$D$+$N;EAH$_$,!"(Bfflush$B$r(B"$BE,@Z(B
        $B$J$H$-$K(B"$B<B9T$7$F$/$l$k!#$7$+$7!"$3$l$O(Bstdout$B$,C<Kv$N$H$-$K$7(B
        $B$+E,1~$5$l$J$$$3$H$,B?$$!#(BQ11.7$B$r;2>H$N$3$H!#(B



Q11.9:  scanf()$B$r;H$C$F%-!<%\!<%I$+$iFI$_<h$k$H!"$b$&0l9TM>7W$KBG$A9~(B
        $B$`$^$G!"%O%s%0$9$k$h$&$@!#(B

A11.9:  scanf()$B$O%U%j!<%U%)!<%^%C%H$NF~NO$rBP>]$K@_7W$5$l$F$$$k!#%U%j(B
        $B!<%U%)!<%^%C%H$NF~NO$O%-!<%\!<%I$+$iFI$`$H$-$K$OK>$`$b$N$G$"$k(B
        $B$3$H$O>/$J$$!#FC$K%U%)!<%^%C%HJ8;zNs$N!V(B\n$B!W$O2~9T$r0UL#$7$F$k(B
        $B$N$G$O$J$/!"6uGr$,B3$/$+$.$jFI$s$G$O<N$F$k$3$H$r0UL#$7$F$$$k!#(B

        $B4XO"$7$?LdBj$H$7$F$O!";W$$$,$1$J$$>l=j$K?tCM$G$J$$F~NO$,Mh$k(B
        $B$H!"(Bscanf$B$,(B "$B%8%c%`(B"$B$C$F$7$^$&$3$H$,$"$k!#$3$l$i$NLdBj$r9M$($k(B
        $B$H!"$?$$$F$$$O0l9T$^$k$^$kFI$`$N$K(Bfgets()$B$r;H$C$F!"$=$N8e(B
        $B$G(Bsscanf()$B$+B>$NJ8;zNs$rA`:n$9$k4X?t$r;H$C$F!"%i%$%s%P%C%U%!$r(B
        $BJ,@O$9$kJ}$,$h$$!#(B sscanf$B$r;H$&$H$-$OLa$jCM$r%A%'%C%/$7$F!"4|(B
        $BBT$7$?$@$1$N?t$N9`L\$,8+$D$+$C$?$3$H$r3NG'$9$k$3$H$rK:$l$J$$$3(B
        $B$H!#(B



Q11.10: fopen$B$N%b!<%I!V(Br+$B!W$r;H$C$F%U%!%$%k$r3+$$$F!"<!$K$"$kJ8;zNs$r(B
        $BFI$s$G!":G8e$K=$@5$7$?J8;zNs$r=q$-La$9$3$H$G%U%!%$%k$r99?7$7$h(B
        $B$&$H$7$F$$$k!#$G$b$&$^$/$$$+$J$$!#(B

A11.10: $B=q$/A0$K(Bfseek$B$rI,$:8F$V$3$H!#>e=q$-$7$h$&$H$7$F$$$kJ8;zNs$N@h(B
        $BF,$K%7!<%/$9$k$3$H$,I,MW$G$"$k$7!"FI$_=q$-N>J}2DG=$N!V(B+$B!W%b!<(B
        $B%I$G%G!<%?$rFI$`$H$-$H=q$/$H$-$N4V$K$O(Bfseek$B$+(B fflush$B$,I,MW$G$"(B
        $B$k!#85!9$"$C$?J8;z$HF1$88D?t$7$+>e=q$-$G$-$J$$$3$H$bK:$l$F$O$$(B
        $B$1$J$$!#(B Q17.4$B$r;2>H$N$3$H!#(B

             References: ANSI Sec. 4.9.5.3 p. 131.



Q11.11: RETURN$B%-!<$,2!$5$l$k$N$rBT$D$3$H$J$/!"0lEY$K0lJ8;z$:$DFI$`$3$H(B
        $B$,$G$-$k$+!#(B

A11.11: Q16.1$B$r;2>H$N$3$H!#(B



Q11.12: $B%f!<%6$,@hBG$A$7$?F~NO$,!"<!$KF~NOBT$A$9$k$H$3$m$GFI$^$l$k$3$H(B
        $B$,$J$$$h$&$K!"=hM}$5$l$F$$$J$$F~NO$r$O$-$@$9$3$H$,$G$-$k$+!#(B
        fflush(stdin)$B$O8z$/$+!#(B

A11.12: fflush$B$O!"=PNO%9%H%j!<%`$K$7$+Dj5A$5$l$F$$$J$$!#(Bfflush
        $B$N(B"flush"$B$O!"%P%C%U%!%j%s%0$5$l$?J8;z$N(B($B<N$F$k$N$G$O$J$/(B)$B=q$-(B
        $B9~$_$rC#@.$9$k$3$H$r0UL#$7$F$$$k!#FI$^$l$F$J$$F~NO$r<N$F$k$3$H(B
        $B$O!"F~NO%9%H%j!<%`$r(Bfflush$B$9$k$H$$$&$3$H$HF1$80UL#$G$O$J(B
        $B$$!#(Bstdio$B$NF~NO%P%C%U%!$NFI$^$l$F$$$J$$F~NO$r<N$F$k0lHLE*$JJ}(B
        $BK!$O$J$$$7!"$=$s$J$3$H$r$9$k$@$1$G$O=<J,$G$J$$!#FI$^$l$F$$$J$$(B
        $BJ8;z$O!"(BO/S$B%l%Y%k$N%P%C%U%!$K$b$?$a9~$^$l$F$$$k2DG=@-$,$"$k!#(B



Q11.13: $B%W%m%0%i%`$NCf$+$i(Bstdio$B$d(Bstdout$B$r%U%!%$%k$K%j%@%$%l%/%H$7$?$$(B
        $B$,$I$&$9$l$P$h$$$+!#(B

A11.13: freopen$B$r;H$(!#(B



Q11.14: freopen$B$r;H$C$?8e$G!"85$N(Bstdout($B$"$k$$$O(Bstdin)$B$r<h$jLa$9$3$H$,(B
        $B$G$-$k$+!#(B

A11.14: $B$b$79T$C$?$jMh$?$j$7$?$$$N$G$"$l$P!"K|G=$G:G9b$NJ}K!$O(B freopen
        $B$J$s$F;H$o$J$$$3$H$G$"$k!#<+J,$GL@<(E*$KDj5A$7$?=PNO(B($B$"$k$$$O(B
        $BF~NO(B)$B%9%H%j!<%`JQ?t$r;H$&$3$H!#$=$&$9$l$P;W$&$^$^$K=PNO(B($B$^$?$O(B
        $BF~NO(B)$B$r3d$jEv$F$F!"$7$+$b85$N(Bstdout($B$"$k$$$O(Bstdin)$B$r2u$5$J$/$F(B
        $B$9$`!#(B



Q11.15: $B%*!<%W%s$7$?%U%!%$%k$N%U%!%$%k<1JL;R$+$i%U%!%$%kL>$rI|3h$9$k$3(B
        $B$H$,$G$-$k$+!#(B

A11.15: $B$3$NLdBj$O!"0lHLE*$K$$$C$F!"2r$/$3$H$O$G$-$J$$!#$?$H$($P(BUNIX$B$G(B
        $B$O%G%#%9%/A4BN$r%9%-%c%s$9$k$3$H$,(B($B$?$V$sFCJL$J5v2D$,I,MW$H$J(B
        $B$k$@$m$&$,(B)$BI,MW$G%U%!%$%k<1JL;R$,%Q%$%W$d:o=|$5$l$?8e$N%U%!%$(B
        $B%k(B($BJ#?t$N%j%s%/$,D%$i$l$F$$$k%U%!%$%k$KBP$7$F$O8m2r$r$^$M$-$=(B
        $B$&$JEz$($rJV$9$@$m$&(B)$B$r;X$7$F$$$?$i!"$3$NJ}K!$b$&$^$/$$$+$J(B
        $B$$!#%*!<%W%s$7$?%U%!%$%k$NL>A0$r(B($B$?$V$s(Bfopen$B$K4X?t$r0lCJ$+$V$;(B
        $B$F(B)$B<+J,$G3P$($F$*$/$N$,0lHV$h$$!#(B



12.$B%i%$%V%i%j4X?t(B

Q12.1:  $B$J$<(Bstrncpy$B$O%3%T!<@h$NJ8;zNs$K!"=*C<J8;z$N(B'\0'$B$rIU$1$J$$$3$H(B
        $B$,$"$k$N$+!#(B

A12.1:  $B85!9$O(Bstrncpy$B$O!":#$H$J$C$F$O;~BeCY$l$K$J$C$F$7$^$C$?%G!<%?9=(B
        $BB$!"$9$J$o$A8GDjD9$GI,$:$7$b(B\0$B$G=*$o$C$F$$$J$$(B"$BJ8;zNs(B"$B$r07$&$?(B
        $B$a$K@_7W$5$l$?!#3N$+$K$3$N(B"$BJ8;zNs(B"$B0J30$r07$&$H$-$O>/$74VH4$1$G(B
        $B$"$k!#$7$P$7$PL\E*$NJ8;zNs$K!"<+J,$G(B'\0'$B$rDI2C$7$J$1$l$P$J$i$J(B
        $B$$!#(B



Q12.2:  $BJ8;zNs$NG[Ns$r(Bqsort$B$G@0Ns$9$k$N$K!"(Bstrcmp$B$rHf3SMQ$N4X?t$H$7$F(B
        $B;HMQ$7$F$$$k$,!"$&$^$/$$$+$J$$!#(B

A12.2:  $B!VJ8;zNs$NG[Ns!W$H$O$?$V$s!V(Bchar$B$X$N%]%$%s%?$+$i$J$kG[Ns!W$r0U(B
        $BL#$7$F$$$k$H;W$&!#(Bqsort$B$NHf3SMQ$N4X?t$N0z?t$O!"@0Ns$NBP>]$X$N(B
        $B%]%$%s%?$G$"$k!#$3$3$G$O(Bchar$B$X$N%]%$%s%?$X$N%]%$%s%?$G$"(B
        $B$k(B(strcmp$B$O$b$A$m$s(Bchar$B$X$N%]%$%s%?$r0z?t$H$9$k(B)$B!#(B

        $BHf3SMQ$N4X?t$N0z?t$O!VHFMQ$N%]%$%s%?!W!"$9$J$o$A(Bvoid *$B$"$k$$(B
        $B$O(Bchar *$B$G$"$i$o$5$l$k!#$3$l$r<B:]$N7?(B(char **)$B$KLa$7$F4V@\;2(B
        $B>H$9$k$H(B char *$B$rF@$k!#$3$l$OHf3S$K;H$($k!#0J2<$N$h$&$JHf3S$N(B
        $B4X?t$rMQ0U$9$k$3$H!#(B

                     int pstrcmp(p1, pe)             /* $B%]%$%s%?$rDL$7$FJ8;zNs$rHf3S$9$k(B */
                     char *p1, *p2;            /* ANSI C$B$G$O(Bvoid * */
                     {
                             return strcmp(*(char **)p1, *(char **)p2);
                     }

        K&R II Sec. 5.11 pp. 119-20$B$N5DO@$rFI$`$H$-$OMQ?4$9$k$3$H!#$=(B
        $B$3$G$O(BANSI$B5,3J$N%i%$%V%i%j$N(Bqsort$B$r5DO@$7$F$$$k$o$1$G$O$J$$!#(B



Q12.3:  qsort$B$r;H$C$F9=B$BN$NG[Ns$r@0Ns$7$h$&$H$7$F$$$k!#;d$,=q$$$?Hf(B
        $B3S%k!<%A%s$O!"9=B$BN$X$N%]%$%s%?$r0z?t$H$7$F<h$k!#$1$l$I%3%s%Q(B
        $B%$%i$O!";d$N4X?t$,(Bqsort$B$N0z?t$H$7$F$O4V0c$C$?%G!<%?7?$@$HJ86g(B
        $B$rIU$1$k!#4X?t$X$N%]%$%s%?$r$I$N$h$&$K%-%c%9%H$9$l$P7Y9p$r>C$7(B
        $B5n$k$3$H$,$G$-$k$N$+!#(B

A12.3:  $B7?$NJQ49$rHf3S4X?tFb$G9T$o$J$1$l$P$J$i$J$$!#Hf3S4X?t$O>e(B
        $B$N(BQ12.2$B$G5DO@$7$?$h$&$K!VHFMQ$N%]%$%s%?!W(B (const void *$B$^$?(B
        $B$O(Bchar *)$B$r0z?t$H$7$F<h$k$H@k8@$5$l$F$J$1$l$P$J$i$J$$!#%3!<%I(B
        $B$O0J2<$N$h$&$K$J$k$@$m$&!#(B


                     int mystructcmp(p1, p2)
                         char *p1, *p2;                /* ANSI C$B$N>l9g(B
                     $B$O(Bconst void * */
                         {
                             struct mystruct *sp1 =  (struct  mystruct
                     *)p1;
                             struct mystruct *sp2 =  (struct  mystruct
                     *)p2;
                             /*$B$3$l$+$i(Bsp1->whatever$B$H(Bsp2-> ...$B$rHf3S(B
                     $B$9$k(B */
                         }

        ($B0lJ}!"9=B$BN$X$N%]%$%s%?$r@0Ns$9$k$N$G$"$l$P(BQ12.2$B$N$h$&$K4V@\(B
        $B;2>H$,I,MW$G$"$k!#(B
        sp1 = *(struct mystruct **)p1 )



Q12.4:  $B$I$&$9$l$P?t$rJ8;zNs$KJQ49$9$k$3$H$,$G$-$k$+(B(atoi$B$NH?BP(B)$B!#4X?t(B
        itoa$B$H$$$&$N$OB8:_$9$k$N$+!#(B

A12.4:  $B$J$K$b9M$($:$K(Bsprintf$B$r;H$((B($B7k2L$r3JG<$9$k$N$KNN0h$rMQ0U$7$F$*(B
        $B$+$J$1$l$P$J$i$J$$!#(B Q3.1$B$H(BQ3.2$B$r;2>H$N$3$H!#!V(Bsprintf$B$O$d$j$9(B
        $B$.$@!#<B9T;~4V$H%3!<%INN0h$rL5BL8/$$$9$k!#!W$H$$$&@<$OL5;k$9$k(B
        $B$3$H!#$H$K$+$/F0$/$s$@$+$i(B)$B!#(B

             References: K&R I Sec. 3.6 p. 60; K&R II Sec. 3.6 p. 64.



Q12.5:  C$B$N%W%m%0%i%`$G;~9o$rF@$k$N$O$I$&$9$l$P$h$$$+!#(B

A12.5:  $B4X?t(Btime$B!"(Bctime$B!"(Blocaltime$B$r;H$&(B($B$3$l$i$N4X?t$O@N$+$iB8:_$9$k(B
        $B$7(B ANSI$B5,3J$NCf$K$bB8:_$9$k(B)$B!#0J2<$K%5%s%W%k%W%m%0%i%`$r:\$;$F(B
        $B$*$/!#(B

                     #include <stdio.h>
                     #include <time.h>

                     main()
                     {
                             time_t now = time((time_t *)NULL);
                             printf("It's %.24s. \n", ctime(&now));
                             return 0;
                     }


             References: ANSI Sec. 4.12 .



Q12.6:  $B%i%$%V%i%j4X?t(Blocaltime$B$O(Btime_t$B$r9=B$BN(Btm$B$KJQ49$9$k$3$H$H!"(B
        ctime$B$O(Btime_t$B$r0u:~2DG=$JJ8;zNs$KJQ49$9$k$H$$$&$3$H$OCN$C$F$$(B
        $B$k!#$5$F9=B$BN(Btm$B$dJ8;zNs$r(Btime_t$B$KJQ49$9$k5UJQ49$O$I$&$d$C$F$*(B
        $B$3$J$($P$h$$$+!#(B

A12.6:  ANSI C$B$O!"9=B$BN(Btm$B$r(Btime_t$B$KJQ49$9$k%i%$%V%i%j4X?t(Bmktime$B$rMQ0U(B
        $B$7$F$$$k!#<j85$N%3%s%Q%$%i$,$^$@(Bmktime$B$rMQ0U$7$F$$$J$$$H$-$O!"(B
        $B%Q%V%j%C%/%I%a%$%s$N$b$N$,$$$/$D$+=P$^$o$C$F$$$k$N$GC5$7$F$_$k(B
        $B$3$H!#(B

        $BJ8;zNs$r(Btime_t$B$KJQ49$9$k$N$O!"$b$&>/$79|$,@^$l$k!#$J$<$J$i2r@O(B
        $B$7$J$1$l$P$J$i$J$$F|IU$d;~4V$N%U%)!<%^%C%H$N<oN`$,9-HO0O$K$o$?(B
        $B$k$+$i$G$"$k!#(B strptime$B$H$$$&4X?t$rMQ0U$7$F$$$k%7%9%F%`$b$"(B
        $B$k!#B>$K?M5$$N$"$k%k!<%A%s$H$7$F$O(Bpartime(RCS$B$N%Q%C%1!<%8$H$H(B
        $B$b$KG[I[$5$l$F$$$k(B)$B$,$"$k!#$7$+$7N><T$H$bI8=`$K$J$j$=$&$K$O$J(B
        $B$$!#(B

             References: K&R II Sec. B10 p. 256; H&S Sec. 20.4 p. 361;
             ANSI Sec. 4.12.2.3 .



Q12.7:  $B$"$kF|$+$i(Bn$BF|8e$,2?7n2?F|$+$r$I$&$d$C$F7W;;$9$k$N$+!#(B 2$B$D$NF|(B
        $BIU$N:9$O$I$&$d$C$F7W;;$9$k$N$+!#(B

A12.7:  ANSI/ISO$B5,3J$N(BC$B8@8l$O!"(Bmktime$B$H(Bdifftime$B$H$$$&4X?t$r!"<ALd$NMW(B
        $B5a$KEz$($k$?$a$KMQ0U$7$F$$$k!#(B mktime$B$O@55,2=$5$l$F$$$J$$F|IU(B
        $B$r0z?t$K<h$k!#%G!<%?$r@_Dj:Q$_$N9=B$BN(Btm$B$rMQ0U$7$F!"(Btm_field$B%U(B
        $B%#!<%k%I$KF|IU$rB-$7$?$j0z$$$?$j$7$F$+$i(Bmktime$B$r8F$s$GG/!&7n!&(B
        $BF|$N%U%#!<%k%I$r@55,2=(B($B$=$7$F(Btime_t$B7?$NCM$KJQ49$9$k(B)$B$9$k$3$H$O(B
        $BFq$7$/$J$$!#(B difftime$B$OFs$D$N(Btime_t$B$NCM$N:9$rIC$G7W;;$9$k!#0z(B
        $B$-;;$K;H$&F|IU$N(Btime_t$B$r7W;;$9$k$N$K(Bmktime$B$r;H$&$3$H$,$G$-$k(B
        (time_t$B$GI=8=$G$-$kF|IU$K$7$+$3$NJ}K!$O;H$($J$$$3$H$H!"0lF|$O(B
        $B$$$D$b(B86400$BIC$H$O8B$i$J$$$KCm0U$;$h(B)$B!#(B Q12.6$B$H(BQ17.28$B$b;2>H$N$3(B
        $B$H!#(B

             References: K&R II Sec. B10 p. 256; H&S Secs. 20.4, 20.5
             pp. 361-362; ANSI Secs. 4.12.2.2, 4.12.2.3 .



Q12.8:  $BMp?tH/@84o$,M_$7$$!#(B

A12.8:  $BI8=`$N(BC$B%i%$%V%i%j$K(Brand()$B$H$$$&$N$,B8:_$9$k!#7/$,;H$C$F$$$k%7(B
        $B%9%F%`$N(B rand$B$N<BAu$O40`z$G$J$$$+$b$7$l$J$$$,!"$h$j$h$$4X?t$r(B
        $B=q$/$N$OMF0W$G$J$$$3$H$b;v<B$G$"$k!#(B

             References: ANSI Sec. 4.10.2.1 p. 154; Knuth Vol. 2 Chap.
             3 pp. 1-177.



Q12.9:  $B$"$kHO0O$N@0?t$NMp?t$O$I$&$d$C$?$i@8@.$9$k$3$H$,$G$-$k$+!#(B

A12.9:  $B$9$0$K;W$$IU$/!"(B

                     rand() % N

        ($B$3$3$GEvA3(BN$B$,HO0O$G$"$k(B)$B$OMp?t$N<A$,Dc$$!#$J$<$J$iMp?tH/@84o(B
        $B$NB?$/$G2<0L$N%S%C%H$OHa;4$J$[$I%i%s%@%`$G$J$$(B(Q12.11$B$r;2>H$N(B
        $B$3$H(B)$B!#$h$j$h$$J}K!$O0J2<$N$h$&$J$b$N$G$"$k!#(B

                (int)((double)rand() / ((double)RAND_MAX + 1) * N)


        $BIbF0>.?t$r;H$&$3$H$,5$$K$J$k$N$J$i!"0J2<$NJ}K!$r;n$;$P$h$$!#(B

                     rand() / (RAND_MAX / N + 1)

        $B$I$A$i$NJ}K!$b(BRAND_MAX(ANSI$B$O(B<stdlib.c>$B$GDj5A$7$F$$$k(B)$B$NB8:_$r(B
        $BCN$C$F$$$k$3$H$,EvA3I,MW$G$"$k!#$^$?$I$A$i$b(BN$B$,(BRAND_MAX$B$K$/$i(B
        $B$Y$F==J,>.$5$$$3$H$r2>Dj$7$F$$$k!#(B



Q12.10: $B;d$N%W%m%0%i%`$rAv$i$;$k$?$S!"$$$D$bF1$8Mp?tNs$,JV$C$F$/$k!#(B

A12.10: $B$b$C$HG$0U$N?t$rJV$9$h$&$JMp?tNs$,I,MW$J$i!"5<;wMp?tNs$K<o$r$d(B
        $B$k(Bsrand()$B$r;H$($P$h$$!#$h$/$"$kMp?t$N:G=i$N<o$O!";~9o$d%f!<%6(B
        $B!<$,%-!<$r2!$7$F$+$i$N7P2a;~4V$G$"$k(B ($B$?$@$7%-!<$,2!$5$l$?;~4V(B
        $B$H$$$&$N$O0\?"@-$N9b$$J}K!$G$O5a$a$K$/$$!#(BQ16.10$B$r;2>H$N$3(B
        $B$H(B)$B!#(B

             References: ANSI Sec. 4.10.2.2 p. 154.



Q12.11: $BG$0U$N??56CM$,M_$7$$$N$G(Brand() % 2$B$r;H$C$?$H$3$m!"7k2L$O(B0$B$H(B1$B$,(B
        $B8r8_$K8=$l$k$@$1$@$C$?!#(B

A12.11: $B$J$5$1$J$$5<;wMp?tH/@84o$O(B($B$$$/$D$+$N%7%9%F%`$K>h$C$F$$$k$b$N(B
        $B$OIT9,$J$3$H$K$=$&$G$"$k(B)$B2<0L$N%S%C%H$O$"$^$j%i%s%@%`$G$O$J(B
        $B$$!#>e0L$N%S%C%H$r;H$&$3$H!#(B Q12.9$B$r;2>H$N$3$H!#(B



Q12.12: $B8E$$%W%m%0%i%`$r0\?"$7$h$&$H$7$F$$$k!#$J$<!VL$Dj5A$N30It%7%s%\(B
        $B%k!W$H$$$&%(%i!<$,=P$k$N$+!#(B

A12.12: $B$3$l$+$i(B($B:8B&$K(B)$B5s$2$k%k!<%A%s$O$=$l$>$l;~BeCY$l$G$"$k!#Be$o$j(B
        $B$K1&B&$N%k!<%A%s$r;H$(!#(B

        index?    strchr
        rindex?   strrchr
        bcopy?    $B0lHVL\$N0z?t$HFsHVL\$N0z?t$rF~$lBX$($F(Bmemmove$B$r;H$((B
                  (Q5.15$B$b;2>H(B)$B!#(B
        bcmp?     memcmp
        bzero?    $BFsHVL\$N0z?t$r(B0$B$K$7$F(Bmemset$B$r;H$(!#(B




Q12.13: $B!V%i%$%V%i%j$N%k!<%A%s$,L$Dj5A!W$H$$$&%(%i!<$,=P$?$^$^$G$"$k!#(B
        $B@5$7$$%X%C%@%U%!%$%k$r$9$Y$F%$%s%/%k!<%I$7$?$N$K!#(B

A12.13: $B$$$/$D$+$N>l9g(B($BFC$K%k!<%A%s$,I8=`$G$J$$>l9g(B)$B!"%W%m%0%i%`$r%j%s(B
        $B%/$9$k$H$-$K!"@5$7$$%i%$%V%i%j$,8+$D$+$k$h$&$K!"L@<(E*$K%Q%9$r(B
        $B;XDj$7$J$1$l$P$J$i$J$$!#(BQ15.2$B$r;2>H$N$3$H!#(B



Q12.14: $B$=$l$G$b!V%i%$%V%i%j$N%k!<%A%s$,L$Dj5A!W$H$$$&%(%i!<$,=P$?$^$^(B
        $B$G$"$k!#:#EY$O%j%s%/$9$k$H$-$K(B-l$B$rIU$1$F%i%$%V%i%j$r;XDj$7$?$N(B
        $B$K!#(B

A12.14: $BB?$/$N%j%s%+$O!";XDj$7$?%*%V%8%'%/%H%U%!%$%k$H%i%$%V%i%j$N%j%9(B
        $B%H$r0l2s$N%Q%9$G:n$j=P$7!"%i%$%V%i%j$+$i$=$N;~E@$GL$Dj5A$N4X?t(B
        $B$r4^$`%b%8%e!<%k$@$1$r<h$j=P$9!#$@$+$i%*%V%8%'%/%H%U%!%$%k$H%i(B
        $B%$%V%i%j$N%3%^%s%I%i%$%s$G$N=g=x$O=EMW$G$"$k(B($B%*%V%8%'%/%H%U%!(B
        $B%$%k4V$N=g=x$bBg;v$G$"$k(B)$B!#IaDL$O%i%$%V%i%j$r:G8e$KC5$7$F$b$i(B
        $B$$$?$$(B($BNc$($P!"(BUNIX$B$G$O(B -l$B%9%$%C%A$NN`$O$9$Y$F%3%^%s%I%i%$%s$N(B
        $B:G8e$N$[$&$KIU$1$k$3$H(B)$B!#(B



Q12.15: $B@55,I=8=$NHf3S$r$9$k%3!<%I$,I,MW$H$J$C$?!#(B

A12.15: regexp$B%i%$%V%i%j(B($BB?$/$N(BUNIX$B%7%9%F%`$K$OMQ0U$5$l$F$$$k(B)$B$rC5$9(B
        $B$+!"(B Henry Spencer$B$N(Bregexp$B%i%$%V%i%j$r(Bcs.toronto.edu
        $B$N(Bpub/regexp.shar.Z$B$+$iF~<j$7$m(B(Q17.12$B$b;2>H$N$3$H(B)$B!#(B



Q12.16: $B%7%'%k$,$d$k$h$&$K!"<B9T9T$r(Bargc$B$H(Bargv$B$KJ,$1$k$3$H$,$G$-$k$+!#(B

A12.16: $B$?$$$F$$$N%7%9%F%`$O(Bstrtok$B$H$$$&%k!<%A%s$r;}$C$F$$$k!#$?$@$7;H(B
        $B$&$K$O%3%D$,$$$k$7!"$d$j$?$$$3$H$rA4It$d$C$F$/$l$k$H$O8B$i$J$$(B
        ($BNc$($P0zMQId$NLdBj(B)$B!#(B

             References: ANSI Sec. 4.11.5.8; K&R II Sec. B3 p. 250;
             H&S Sec. 15.7; PCS p. 178.



13. Lint

Q13.1:  $B%W%m%0%i%`$rBG$A9~$s$@$H$3$m$@$1$l$I!"$3$N%W%m%0%i%`$O4qL/$JF0(B
        $B$-$r$9$k!#$I$3$+JQ$J$H$3$m$,$"$k$+!#(B

A13.1:  $B$^$:$O(Blint$B$r(B(-a$B!"(B-c$B!"(B-h$B!"(B-p$B$dB>$N%*%W%7%g%s$r$D$1$F(B)$BF0$+$7$F$_(B
        $B$k$3$H!#B?$/$N(BC$B%3%s%Q%$%i$O!"<B:]$K$O%3%s%Q%$%i$N;E;v$NH>J,$7(B
        $B$+$7$F$$$J$$!#$D$^$j%=!<%9%3!<%I$NLdBjE@$N?GCG$r!"%3!<%I$N@8@.(B
        $B$N<YKb$K$J$i$J$$8B$j$7$J$$$3$H$K$J$C$F$$$k!#(B



Q13.2:  malloc$B$r8F$V$?$S$K(Blint$B$,=P$9!V7Y9p(B:$B%]%$%s%?$N@09g$KLdBj$,$"$k(B
        $B$+$b$7$l$J$$(B (warning:possible pointer alignmentproblem)$B!W$H$$(B
        $B$&%a%C%;!<%8$r>C$9J}K!$O$"$k$+!#(B

A13.2:  $BLdBj$O8E$$(Blint$B$,!"(Bmalloc$B$,!V$I$s$J7?$N%*%V%8%'%/%H$b$&$^$/<}$^(B
        $B$k$h$&$K@09g$7$?NN0h$X$N%]%$%s%?$rJV$9!W$H$$$&$3$H$rCN$i$J$$(B
        $B$7!"65$($k<jCJ$b$J$$$H$$$&$3$H$G$"$k!#(B#ifdef lint$B$N$J$+$G5<;w(B
        $BE*$J(Bmalloc$B$r(B#define$B$7$F$3$N%a%C%;!<%8$r>C$9$3$H$O2DG=$G$"$k(B
        $B$,!"$=$s$J$3$H$r$9$l$PK\Ev$K4V0c$C$?;HMQK!$KBP$7$F$bBg;v$J%a%C(B
        $B%;!<%8$,=P$J$/$J$C$F$7$^$&!#(Bgrep -v$B$r;H$C$F>!<j$KL5;k$9$k$[$&(B
        $B$,$d$5$7$$!#(B



Q13.3:  ANSI$B8_49$N(Blint$B$O$I$3$G<j$KF~$k$+!#(B

A13.3:  Flexlint$B$H$$$&@=IJ$,(B($B%7%e%l%C%@!<$K$+$1$?$h$&$J%=!<%9$GDs6!$5(B
        $B$l$k!#$3$l$O$?$$$F$$$N%7%9%F%`$G%3%s%Q%$%k2DG=$G$"$k(B)$B!"(B

                     Gimpel Software
                     3207 Hogarth Lane
                     Collegeville, PA 19426 USA
                     (+1) 215 584 4261

        $B$+$iF~<j2DG=$G$"$k!#(BSVR4$B$N(Blint$B$O(BANSI$B8_49$G!"(BUNIX Support Labs
        (AT&T$B$N;R2q<R(B)$B$"$k$$$O(B SYSTEM V$B$N(BVAR$B$+$i(B($BB>$N(BC$B8@8lMQ%D!<%k$H6&(B
        $B$K(B)$B9XF~2DG=$G$"$k!#(B

        lint$B$,$J$/$F$b!":G6a$N%3%s%Q%$%i$O!"$h$/$G$-$?(Blint$B$HF1$8$/$i$$(B
        $B$NB?$/$N<oN`$N?GCG$r$7$h$&$H$9$k!#(B



14.$B%9%?%$%k(B

Q14.1:  $B$[$i!"$3$N$o$6$r8+$F!#(B

                     if (!strcmp(s1, s2))


        $B$3$l$O$h$$=q$-J}(B?

A14.1:  $B$H$/$K$h$$=q$-J}$H$$$&$3$H$O$J$$!#$?$@$7?M5$$N$"$k=q$-J}$G$O$"(B
        $B$k!#$3$N%F%9%H$O!"Fs$D$NJ8;zNs$,F1$8$H$-$K@.8y$9$k!#$7$+$7$3$N(B
        $B7A$OEy$7$/$J$$$3$H$r%F%9%H$7$F$$$k$h$&$K$_$($k!#(B

        $B%^%/%m$r;H$C$?$=$N$[$+$NJ}K!$H$7$F!"0J2<$N$h$&$J$b$N$,$"$k!#(B

                     #define Streq(s1, s2) (strcmp((s1), (s2)) == 0)


        $B%3!<%G%#%s%0%9%?%$%k$K4X$9$k9M$(J}$O!"=!65$K4X$9$k9M$(J}$HF1$8(B
        $B$G!"5DO@$K=*$j$,$J$$!#$h$$=q$-J}$O2ACM$"$kL\I8$G$"$k$7!"$?$$$F(B
        $B$$$O8+$l$P$o$+$k$,!"J8>O$K$9$k$3$H$O$G$-$J$$!#(B



Q14.2:  C$B$N%3!<%I$N=q$-J}$G:GNI$N$b$N$O!#(B

A14.2:  K&R$B$G$"$k!#$7$P$7$PE>:\$5$l$kNI$$Nc$r:\$;$F$$$k$@$1$G$J$/!"Hr(B
        $B$1$k$Y$-0-$$Nc$K$O!"N)GI$JM}M3$b:\$;$F$$$k!#(B

             $B3g8L$N0LCV$O$?$$$7$FLdBj$G$O$J$$!#$?$@$7?M$O3g8L$N0LCV$K(B
             $B6/$$?.G0$rJz$$$F$$$k!#2f!9$O@$$K$"$k$$$/$D$+$NNc$+$iA*$s(B
             $B$@$@$1$G$"$k!#<+J,$K8~$$$F$$$k=q$-J}$r<h$jF~$l$F!"<sHx0l(B
             $B4S$7$F;H$$$D$E$1$k$3$H!#(B

        $BBg;v$J$N$O%3!<%I$NG[CV$,(B"$B40A4$J(B"$B$3$H$h$j$b!"A*$s$@%3!<%I$NG[CV(B
        $B$r<sHx0l4S$7$F;H$&$3$H$G$"$k(B ($B$=$l<+?H!"2s$j$N%3!<%I$H!"$"$k$$(B
        $B$O6&DLIt$H(B)$B!#$b$77/$,%3!<%G%#%s%0$r9T$&$H$-$N4D6-$,(B($B$?$H$($P?&(B
        $B>l$N=,47$d2q<R$NJ}?K(B)$B%3!<%G%#%s%0%9%?%$%k$r<($7$F$$$J$/$F!"<+(B
        $BJ,<+?H$N=q$-J}$r;:$_=P$95$$b$J$$$N$J$i!"C1$K(BK&R$B$r$^$M$l$P$h(B
        $B$$!#(B($B;z2<$2$d3g8L$N0LCV$N%H%l!<%I%*%U$K4X$9$kD4::$O!"E0DlE*$+(B
        $B$D:Y$+$/9T$&$3$H$,$G$-$k!#$7$+$7$3$3$G$O5DO@$r7+$jJV$5$J$$!#%$(B
        $B%s%G%#%"%s%R%k%9%?%$%k%,%$%I$r;2>H$N$3$H(B)$B!#(B

        $BDj5A$7$K$/$$(B"$B$h$$%9%?%$%k(B"$B$,;}$DFC<A$K$O!"%3!<%I$NG[CV$N>\:Y0J(B
        $B>e$N$b$N$,$"$k!#$b$C$HBg;v$J%3!<%I$N<A$NLdBj$rH4$-$K$7$FBN:[$K(B
        $B;~4V$r3d$+$J$$$3$H!#(B

             References: K&R Sec. 1.2 p. 10.


Q14.3:  $B%$%s%G%#%"%s%R%k%9%?%$%k%,%$%I$d$=$N$[$+$N%3!<%G%#%s%05,3J$r$I(B
        $B$3$+$i<j$KF~$l$k$3$H$,$G$-$k$N$+!#(B

A14.3:  $BMM!9$J;qNA$,(Banonymous ftp$B$K$h$jF~<j2DG=$G$"$k!#(B

               $B>l=j(B              | $B%U%!%$%k$"$k$$$O%G%#%l%/%H%j(B
               __________________|_____________________________
               cs.washington.edu |  ~ftp/pub/cstyle.tar.Z
                (128.95.1.4)     |  ($B%$%s%G%#%"%s%R%k%,%$%I$N2~(B
                                 | $BD{HG(B)
               cs.toronto.edu    | doc/programmin
               ftp.cs.umd.edu    | pub/style-guide



15.$BIbF0>.?t(B

Q15.1:  $BIbF0>.?t$r;H$C$?7W;;$N7k2L$,JQ$G!"$7$+$b%^%7%s$K$h$C$F0c$C$?Ez(B
        $B$,JV$C$F$/$k!#(B

A15.1:  $B:G=i$K(B#include <math.h>$B$7$?$+$I$&$+!"<!$K(Bdouble$B$rJV$94X?t$r@5(B
        $B$7$/@k8@$7$?$+$I$&$+3N$+$a$k$3$H!#(B

        $BLdBj$,$=$s$J$KC1=c$G$J$$$H$-$O!"%G%8%?%k%3%s%T%e!<%?$,;H$C$F$$(B
        $B$kIbF0>.?t$N%U%)!<%^%C%H$O!"<B?t$N1i;;$N$h$/$G$-$?%7%_%e%l!<%7(B
        $B%g%s$rM?$($k$b$N$G$"$C$F!"7h$7$F@53N$J%7%_%e%l!<%7%g%s$rM?$($k(B
        $B$b$N$G$O$J$$$3$H$r$*K:$l$J$/!#FC$K!"7k9gB'$HJ,G[B'$O>o$K@.N)$9(B
        $B$k$o$1$G$O$J$$(B($B<B9T$N=g$K0UL#$,$"$k$+$b$7$l$J$$$H$$$&$3$H!#B-(B
        $B$7;;$N$/$jJV$7$,!"I,$:$7$b3]$1;;$KEy$7$/$J$$$H$$$&$3$H(B)$B!#%"%s(B
        $B%@!<%U%m!<$d!"@:EY$,=y!9$K<:$o$l$F$$$/$3$H$,LdBj$K$J$k$H$-$b$"(B
        $B$k!#(B

        $BIbF0>.?t$N7k2L$,@53N$J$s$F9M$($J$$$3$H!#FC$K!"IbF0>.?t$GI=$5$l(B
        $B$?CM$,Hf3S$K;H$($k$J$s$F9M$($J$$$3$H(B($B$$$s$A$-$J(B"fuzz factor"$B$r(B
        $B;H$&$3$H$b$M(B)$B!#(B

        $B$3$l$i$O(BC$B8@8l$@$1$G$J$/B>$N%W%m%0%i%`8@8l$G$bLdBj$G$"$k!#IbF0(B
        $B>.?t$H$$$&$N$O!"$?$$$F$$!V%W%m%;%C%5$,$d$k$3$H$O$J$s$G$b$"$j!W(B
        $B$H$$$&$U$&$KDj5A$5$l$F$$$k!#$=$&$G$J$1$l$P(B"$B@5$7$$(B"$BIbF0>.?t$N%b(B
        $B%G%k$r;}$?$J$$%^%7%s$G$O%(%_%e%l!<%7%g%s$r$9$k$7$+$J$/!"$=$s$J(B
        $B$3$H$K$J$l$P%3!<%I$N%5%$%:$H=hM}B.EY$,5>@7$K$J$C$F;H$$J*$K$J$i(B
        $B$J$$!#(B

        $B$3$N5-;v$G$O!"IbF0>.?t$r07$&:]$NMn$H$77j$dH4$1F;$r$$$A$$$A5s$2(B
        $B$k$3$H$O$G$-$J$$!#$h$/$G$-$?%W%m%0%i%_%s%0$N652J=q$O!"4pACE*$J(B
        $B;vJA$r65$($F$/$l$k!#(B

             References: EoPS Sec. 6 pp. 115-8.



Q15.2:  $B$A$g$C$H$7$?;03Q4X?t$N7W;;$,$7$?$/$F(B<math.h>$B$r%$%s%/%k!<%I$7$?(B
        $B$1$l$I!V(B_sin$BL$Dj5A!W$H$$$&%3%s%Q%$%k%(%i!<$,JV$C$F$-$?!#(B

A15.2:  $B$^$:$O@5$7$$?t3X4X?t$N%i%$%V%i%j$,%j%s%/$5$l$F$$$k$3$H$r3NG'$9(B
        $B$k$3$H!#$?$H$($P(BUNIX$B$G$O%3%s%Q%$%k$"$k$$$O%j%s%/$r$9$k;~$K!"%3(B
        $B%^%s%I$N0lHV:G8e$K(B -lm$B%*%W%7%g%s$r$D$1$kI,MW$,$"$k!#(B



Q15.3:  $B$J$<(BC$B$K!"N_>h$,AH$_9~$_4X?t$GMQ0U$5$l$F$$$J$$$N$+!#(B

A15.3:  $B;X?t4X?t$rAH$_9~$_$NL?Na$H$7$F;}$C$F$$$k%W%m%C%;%C%5$,>/$J$$$+(B
        $B$i$G$"$k!#$+$o$j$K(B#include <math.h>$B$7$F4X?t(Bpow()$B$r;H$($P$h$$!#(B
        $B>.$5$J@0?t$,Aj<j$J$i!"$?$$$F$$$O<+J,$G3]$1;;$G=q$$$?$[$&$,$h(B
        $B$$!#(B

             References: ANSI Sec. 4.5.5.1.



Q15.4:  $B;M<N8^F~$N;EJ}$O!#(B

A15.4:  $B0lHVC1=c$GMF0W$J$N$O0J2<$N$h$&$J%3!<%I$r=q$/$3$H$G$"$k!#(B

                     (int)(x + 0.5)

        $B$7$+$7$3$NJ}K!$OIi$N?t$KBP$7$F$O$&$^$/$$$+$J$$!#(B



Q15.5:  IEEE$B$N(BNan$B$d!"$=$NB>$NFCJL$JCM$+$I$&$+$N%F%9%H$O$I$&$d$l$P$h$$(B
        $B$+!#(B

A15.5:  IEEE$B$NIbF0>.?t$r9bIJ<A$K<BAu$9$k%7%9%F%`$NB?$/$O!"$3$l$i$NCM$N(B
        $B%F%9%H$r$-$l$$$K9T$&5!G=(B($BNc$($P(Bisnan()$B%^%/%m(B)$B$rMQ0U$7$F$$$k!#(B
        C$B8@8l?tCM1i;;3HD%%0%k!<%W(B (the Numerical C Extensions
        Group:NCEG)$B$O>e$N$h$&$J%F%9%H$NI8=`2=$N:n6H$r9T$C$F$$$k!#(B Nan
        $B$+$I$&$+$NNO$:$/$@$1$l$I!"$?$$$F$$$O$&$^$/$$$/%F%9%HJ}K!$r0J2<(B
        $B$NNc$G<($9!#(B

                     #define isnan(x) ((x) != (x))

        $B$1$l$I(BIEEE$B%U%)!<%^%C%H$rCN$i$J$$%3%s%Q%$%i$O!"$3$N%F%9%H$r:GE,(B
        $B2=$N7k2L!":o=|$9$k$+$b$7$l$J$$!#(B



Q15.6:  Turbo C$B$G%W%m%0%i%`$r<B9T$9$k$H!VIbF0>.?t%U%)!<%^%C%H$,%j%s%/(B
        $B$5$l$F$$$J$$!W$H$$$C$F%/%i%C%7%e$9$k$N$G:$$C$F$$$k!#(B

A15.6:  $B>.7?%^%7%sMQ$N%3%s%Q%$%i$NCf$K$O!"(BTurbo C(Dennis Ritchie$B$N%*%j(B
        $B%8%J%k$N(B PDP-11$BMQ$N%3%s%Q%$%i$b(B)$B$b4^$a$F!"I,MW$,$J$5$=$&$K$_$((B
        $B$k$H$-$OIbF0>.?t$X$NBP1~$r<B9T$7$J$$$h$&$K$G$-$F$$$k$b$N$,$"(B
        $B$k!#FC$KIbF0>.?t$KBP1~$7$J$$(B printf$B$d(Bscanf$B$O(B%e,%f,%g$B$r07$&%3!<(B
        $B%I$r>JN,$9$k$3$H$G%a%b%j$r@aLs$7$F$$$k!#(BTurbo C$B$,%W%m%0%i%`$,(B
        $BIbF0>.?t$r;H$C$F$$$k$+$I$&$+$rH=Dj$9$k%k!<%k$O!"$?$^$?$^IT==J,(B
        $B$J$h$&$G$"$k!#$=$s$J$H$-$O%W%m%0%i%^$OIbF0>.?t$KBP1~$7$?%3!<%I(B
        $B$r%m!<%I$9$k$?$a$K!"L@<(E*$KIbF0>.?t$r;H$C$?%3!<%I$r%@%_!<$GF~(B
        $B$l$J$1$l$P$$$1$J$$(B($BLuCm(B:Turbo C$B$G$O%=!<%9%U%!%$%kFb$K(Bextern
        void _floatconvert(); #pragma extref _floatconvert$B$HL@<(E*$K=q(B
        $B$/$3$H$G!"$3$N%(%i!<$r2sHr$9$k$3$H$,$G$-$k(B)$B!#(B




16.$B%7%9%F%`0MB8(B

Q16.1:  $B$I$&$9$l$P2~9T$rBT$D$3$H$J$/%-!<%\!<%I$+$i0lJ8;zFI$`$3$H$,$G$-(B
        $B$k$+!#(B

A16.1:  $B0lHL$N?M$,?.$8$F$$$k$3$H$dB?$/$N?M$N4uK>$KH?$7$F!"$3$N<ALd$O(BC
        $B8@8l$K4X$9$k<ALd$G$O$J$$(B($B$3$l$K$h$/;w$?!"%-!<%\!<%IF~NO$N%(%3(B
        $B!<%P%C%/$NLdBj$K$D$$$F$bF1MM$G$"$k(B)$B!#J8;z$r%-!<%\!<%I$+$i(BC$B$N%W(B
        $B%m%0%i%`$KEO$9$N$O!"%*%Z%l!<%F%#%s%0%7%9%F%`$N;E;v$G$"$C$F!"(BC
        $B8@8l$NB&$GI8=`2=$G$-$k$b$N$G$O$J$$!#(B curses$B$N0lIt$O!"4X(B
        $B?t(Bcbreak()$B$rMQ0U$7$F$$$k!#$3$l$,K>$_$N5!G=$r2L$?$9J*$G$"$k!#2h(B
        $BLL$KI=<($9$k$3$H$J$/%Q%9%o!<%I$rFI$_$?$$$H$$$&$N$G$"$l$P(B get-
        pass()$B$r;n$;$P$h$$!#(B UNIX$B$G$O!"%?!<%_%J%k%I%i%$%P$N%b!<%I$r$$(B
        $B$8$k$N$K(B ioctl$B$r;H$($P$h$$(B($B!V8EE5E*$J!W%7%9%F%`$G$O(BCBREAK
        $B$d(BRAW$B!"(BSYSTEM V$B$d(B POSIX$B=`5r$N%7%9%F%`$G(B
        $B$O(BICANON,c_cc[VMIN],c_cc[VTIME])$B!#(BMS-DOS$B$G$O!"(B getch()$B$r;n$9$3(B
        $B$H!#(BVMS$B$G$O!"%9%/%j!<%s4IM}5!G=(B(SMGZ$)$B$d(Bcurses$B!"0lEY$K0lJ8;zM_(B
        $B$7$$$N$G$"$l$PDc%l%Y%k$N(B$QIO$B$r(BIO$_READVBLK$B$r(B ($B$?$V(B
        $B$s(BIO$M_NOECHO$B$bI,MW$@$m$&(B)$BIU$1$F;n$9$3$H!#B>$N(BO/S$B$G$O<+J,$G;n(B
        $B$7$F$_$k$3$H!#(B O/S$B$K$h$C$F$O$3$N<j$N:n6H$rIT2DG=$H$7$F$$$k$b$N(B
        $B$,$"$k$3$H$KCm0U!#$3$N$h$&$J%7%9%F%`$G$OJ8;z$rF~NO9T$K=8$a$k$3(B
        $B$H$O<~JUAuCV$N%W%m%;%C%5$N@)8f2<$K$"$j!"%W%m%0%i%`$rF0$+$7$F$$(B
        $B$k(BCPU$B$ND>@\$N;YG[2<$K$O$J$$$+$i$@!#(B

        O/S$BFCM-$N<ALd$O!"(Bcomp.lang.c$B$K$U$5$o$7$/$J$$!#$h$/$"$k<ALd$NB?(B
        $B$/$O(B FAQ(Frequently Asked Questions)$B$X$N2rEz$H$7(B
        $B$F(Bcomp.unix.questions$B$d(B comp.os.msdos.programmer$B$H$$$C$?%0%k!<(B
        $B%W$KEj9F$5$l$F$$$k!#%7%9%F%`$,0c$C$F$b2rEz$O6&DL$G$"$k$3$H$,B?(B
        $B$$$,!"%7%9%F%`FCM-$N<ALd$KEz$($k$H$-$O!"7/$N%7%9%F%`$K$"$F$O$^(B
        $B$k2rEz$,B>$N?MA4It$K$"$F$O$^$k2rEz$G$J$$$+$b$7$l$J$$$3$H$KCm0U(B
        $B$9$k$3$H!#(B

             References: PCS Sec. 10 pp. 128-9, Sec. 10.1 pp. 130-1.



Q16.2:  $BFI$_<h$k$3$H$,$G$-$kJ8;z$,;D$C$F$$$k$+$I$&$+(B($B$G$-$k$J$i8e$$$/(B
        $B$D;D$C$F$$$k$+(B)$BCN$k$3$H$,$G$-$k$+!#$G$-$J$$$H$7$?$i!"J8;z$,F~(B
        $B$C$F$3$J$$$H$-$K=hM}$,;_$^$C$F$7$^$o$J$$$h$&$JFI$_<h$j$+$?$O$I(B
        $B$&$d$l$P$h$$$+!#(B

A16.2:  $B$3$l$b!"$^$C$?$/(BO/S$B$K0MB8$7$?LdBj$G$"$k!#(Bcurses$B$NCf$K$O!"$=$N(B
        $B$h$&$JL\E*$N$?$a$K4X?t(Bnodelay()$B$rMQ0U$7$F$$$k$b$N$b$$$k!#%7%9(B
        $B%F%`$K$h$C$F$O!"!V%V%m%C%/$7$J$$(BI/O$B!W$d!V(Bselect$B!W$H$$$&L>$N%7(B
        $B%9%F%`%3!<%k!"(BFIONREAD ioctl,kbhit(),rdchk()$B!"$"$k$$$O4X(B
        $B?t(Bopen()$B$d(Bfcntl()$B$N(BO_NDELAY$B%*%W%7%g%s$r;H$&$3$H$,$G$-$k!#(B



Q16.3:  $B$I$&$9$l$P2hLL$r%/%j%"$9$k$3$H$,$G$-$k$+!#$I$&$9$l$PH?E>J8;z$G(B
        $B=PNO$9$k$3$H$,$G$-$k$+!#(B

A16.3:  $B$3$N<j$NOC$O!"C<Kv$N7?$dI=<($N<oN`$K:81&$5$l$k!#(Btermcap
        $B$d(Bcurses$B$N$h$&$J%i%$%V%i%j!"$"$k$$$O%7%9%F%`8GM-$N%k!<%A%s$r;H(B
        $B$o$J$1$l$P$$$1$J$$!#(B



Q16.4:  $B$I$&$9$l$P%^%&%9$N=PNO$rFI$`$3$H$,$G$-$k$+!#(B

A16.4:  $BBP>]$H$9$k%7%9%F%`$N;qNA$K$"$?$k$3$H!#$"$k$$$OE,@Z$J%7%9%F%`@l(B
        $BLg$N%K%e!<%9%0%k!<%W$K$?$:$M$k$3$H(B ($BEvA3(BFAQ$B$N%j%9%H$r@h$KD4$Y(B
        $B$k$3$H(B)$B!#%^%&%9$N<h$j07$$$O!"(B X$B%&%$%s%I%&$H(BMS-DOS$B$H(BMacintosh$B$G(B
        $B$O$^$C$?$/0[$J$k!#$?$V$sB>$N%7%9%F%`$G$b0[$J$k$@$m$&!#(B



Q16.5:  $B$I$&$9$l$P%W%m%0%i%`$,5/F0$5$l$?$H$-$N@dBP%Q%9$rCN$k$3$H$,$G$-(B
        $B$k$+!#(B

A16.5:  argv[0]$B$K@dBP%Q%9$,F~$C$F$$$k$+$b$7$l$J$$$7!"2?$bF~$C$F$$$J$$(B
        $B$+$b$7$l$J$$!#(Bargv[0]$B$K%Q%9L>$,F~$C$F$$$k$,40A4$G$J$$$H$-$O!"(B
        $B%7%'%k$,%3%^%s%I$rC5$9%m%8%C%/$r??;w$l$P$$$$!#$7$+$7$J$,$i3N<B(B
        $B$JJ}K!$b0\?"@-$N$"$kJ}K!$bB8:_$7$J$$!#(B



Q16.6:  $B$I$&$9$l$P%W%m%;%9$,5/F0$7$?B&$N4D6-JQ?t$rJQ99$9$k$3$H$,$G$-$k(B
        $B$+!#(B

A16.6:  $B0lHL$K$$$($P!"$G$-$J$$!#$=$l$>$l$N(BO/S$B$,!"(BUNIX$B$KN`;w$NJQ?tL>$H(B
        $BCM$r7k$SIU$1$k5!G=$r!"$=$l$>$l$NJ}K!$G<BAu$7$F$$$k!#(B"$B4D6-(B"$B$,5/(B
        $BF0Cf$N%W%m%0%i%`$K$h$C$FET9g$h$/JQ99$G$-$k$+$I$&$+$H!"$G$-$k$H(B
        $B$9$l$P$=$NJ}K!$O!"%7%9%F%`$K0MB8$9$k!#(B

        UNIX$B$N%W%m%;%9$O<+J,$N4D6-$rJQ99$9$k$3$H$,$G$-$k(B(setenv()$B$d(B
        putenv()$B$r$3$NL\E*$N$?$a$KMQ0U$7$F$$$k%7%9%F%`$b$"$k(B)$B!#$=$7(B
        $B$F!"$=$N4D6-$O$?$$$F$$;R%W%m%;%9$KEO$5$l$k!#$7$+$7?F%W%m%;%9$K(B
        $B$^$GLa$k$3$H$O$J$$!#(B



Q16.7:  $B%U%!%$%k$,B8:_$9$k$+$I$&$+$O$I$&$d$C$FD4$Y$l$P$h$$$+!#;XDj$5$l(B
        $B$?=PNO%U%!%$%k$,$9$G$KB8:_$9$k$H$-$K$O%f!<%6!<$KN;2r$r<h$j$?(B
        $B$$!#(B

A16.7:  UNIX$B$d(BUNIX$B$KN`;w$N%7%9%F%`$G$O!"(Baccess()$B4X?t$r;n$7$F$_$l$P$h(B
        $B$$!#$?$@$7$3$N4X?t$K$O$$$/$D$+LdBj$,$"$k(B ($B7k2L$K$7$?$,$C$F9T$&(B
        $B=hM}$N%?%$%_%s%0$K$h$C$F$O!"$*$+$7$JF0:n$r$9$k2DG=@-$,$"$k!#$^(B
        $B$?(Bsetuid$B$7$?%W%m%0%i%`$G$O4qL/$JF0:n$r$9$k(B)$B!#JL$NJ}K!$H$7$F$O(B(
        $B$3$C$A$N$[$&$,!"$h$$$+$b$7$l$J$$(B)$B!"(Bstat()$B$rBP>]$H$J$k%U%!%$%k(B
        $B$KBP$7$F8F$V$3$H$G$"$k!#$3$l$G$b$@$a$J$i!"%U%!%$%k$NB8:_$r%F%9(B
        $B%H$9$k3N<B$G0\?"@-$N9b$$J}K!$O!"%U%!%$%k$r3+$/$3$H$7$+;D$C$F$J(B
        $B$$(B ($B$3$l$b%U%!%$%k$,B8:_$9$k$H$-$O>e=q$-$7$?$/$J$/$C$F!"(B BSD
        UNIX$B$,$b$C$F$$$k(Bopen$B$N(BO_EXCL$B%*%W%7%g%s$N$h$&$J$b$N$,<j$KF~$i$J(B
        $B$$4D6-$G$"$l$PLr$KN)$?$J$$(B)$B!#(B



Q16.8:  $B$I$&$9$l$PFI$`A0$K%U%!%$%k$NBg$-$5$rCN$k$3$H$,$G$-$k$+!#(B

A16.8:  $B$b$7$b(B"$B%U%!%$%k$N%5%$%:(B"$B$,!"(BC$B8@8l$r;H$C$F%U%!%$%k$+$iFI$`$3$H(B
        $B$N$G$-$kJ8;z$N?t$H$$$&$3$H$G$"$l$P!"0lHL$K$O$3$N?t$rA0$b$C$FCN(B
        $B$k$3$H$OIT2DG=$G$"$k!#(BUNIX$B$G$O4X?t(Bstat()$B$,@53N$JEz$($rM?$($F$/(B
        $B$l$k!#B>$N%7%9%F%`$NCf$K$b(BUNIX$B$N(Bstat()$B$KN`;w$N4X?t$rMQ0U$7$F$$(B
        $B$k$b$N$,$"$C$F!"$=$&$$$&>l9g$O6a;wCM$rM?$($F$/$l$k!#(Bfseek$B$r%U(B
        $B%!%$%k$N:G8e$G<B9T$7$F(Bftell$B$9$l$P$h$$!#$7$+$7$3$N$d$j$+$?$O0\(B
        $B?"@-$,Dc$$!#(B(UNIX$B$G$@$1@53N$JCM$,JV$C$F$/$k!#(BANSI C$B$N(B"$B%P%$%J%j(B
        $B%U%!%$%k(B"$B$G$OJ]>Z$5$l$F$$$k$,!"6a;wCM$7$+JV$C$F$3$J$$2DG=@-$,(B
        $B$"$k(B)$B!#(Bfilesize$B$H$+(Bfilelength$B$H$$$&%k!<%A%s$rMQ0U$7$F$$$k%7%9(B
        $B%F%`$b$"$k!#(B

        $BK\Ev$K%U%!%$%k$N%5%$%:$rA0$b$C$F7h$a$F$*$+$J$1$l$P$J$i$J$$$N(B
        $B$+!#(B C$B%W%m%0%i%`$+$i8+$($k%U%!%$%k$N%5%$%:$r7hDj$9$k:G$b@53N$J(B
        $BJ}K!$O!"%U%!%$%k$r3+$$$FFI$`$3$H$G$"$k$+$i!"%U%!%$%k$rFI$_$J$,(B
        $B$i%5%$%:$rCN$k$h$&$K=q$-49$($?$[$&$,$$$$!#(B



Q16.9:  $B$^$C$?$/>C$75n$k$3$H$d>e=q$-$9$k$3$H$J$/%U%!%$%k$r$=$N>l$GC;$/(B
        $B$9$k$3$H$O$G$-$k$+!#(B

A16.9:  BSD$B%7%9%F%`$O(Bftruncate()$B$r!"B>$N$b$N$O(Bchsize()$B$r!"$^$?$$$/$D$+(B
        $B$O(B ($B%I%-%e%a%s%H$K$O=q$+$l$F$$$J$$$@$m$&$1$l$I(B)fcntl$B$N%*%W%7%g(B
        $B%s$H$7$F(BF_FREESP$B$rMQ0U$7$F$$$k!#(BMS-DOS$B$G$O(Bwrite(fd, "", 0)$B$,;H(B
        $B$($k$3$H$,$"$k!#$1$l$IK\Ev$K0\?"@-$N9b$$J}K!$H$$$&$b$N$OB8:_$7(B
        $B$J$$!#(B



Q16.10: 1$BIC$h$j:Y$+$$CY$l$d!"(B1$BIC$h$j:Y$+$$%f!<%6$NH?1~$N7WB,$O!"$I$&<B(B
        $BAu$9$l$P$h$$$+!#(B

A16.10: $B;DG0$J$,$i0\?"@-$N9b$$J}K!$OB8:_$7$J$$!#(BV7 UNIX$B$H$=$3$+$iGI@8(B
        $B$7$?%7%9%F%`$O!"$+$J$jLr$KN)$D(Bftime()$B$rMQ0U$7$F$$$?!#$3$N4X?t(B
        $B$O%_%jICC10L$N@:EY$r;}$C$F$$$?!#$7$+$7(BSYSTEM V$B$d(BPOSIX$B$+$i>C$((B
        $B$F$7$^$C$?!#(B

        $BB>$KC5$9$Y$-4X?t$H$7$F$O!"(Bnap()
        $B$d(Bsetitimer(),msleep(),usleep(), clock(),gettimeofday()$B$,$"(B
        $B$k!#(B select()$B$d(Bpoll()$B$O(B($B$b$7<j$KF~$l$P(B)$B!"4JC1$JCY$l$r<BAu$9$k(B
        $B$N$K;H$($k!#(B MS-DOS$B%^%7%s$G$O!"%7%9%F%`%?%$%^$d%?%$%^$N3d$j9~(B
        $B$_$r%W%m%0%i%`$7$J$*$9$3$H$G<B8=$G$-$k!#(B



Q16.11: $B$I$&$9$l$P%*%V%8%'%/%H%U%!%$%k$rFI$_9~$s$G!"$=$NCf$K$"$k%k!<%A(B
        $B%s$K%8%c%s%W$9$k$3$H$,$G$-$k$+!#(B

A16.12: $B%@%$%J%_%C%/%j%s%+!<$d%@%$%J%_%C%/%m!<%@!<$,I,MW$G$"$k!#NN0h(B
        $B$r(Bmalloc$B$7$F!"$=$NNN0h$K%*%V%8%'%/%H%U%!%$%k$rFI$_9~$`$3$H$O$G(B
        $B$-$k!#$7$+$7%*%V%8%'%/%H%U%!%$%k$N%U%)!<%^%C%H$d$=$NG[CV$J$I$K(B
        $B$D$$$F!"$+$J$j$NCN<1$,I,MW$H$J$k!#(BBSD$B$G$O(Bsystem()$B$H(Bld -A$B$r;H$C(B
        $B$F%j%s%/$9$k$3$H$,$G$-$k!#(B GNU$B$N%Q%C%1!<%8$K!V(Bdld$B!W$H$$$&$N$,(B
        $BB8:_$9$k!#$3$l$OF0E*$J%j%s%/$K$^$D$o$k;E;v$N0lIt$"$k$$$OA4It$r(B
        $B<B9T$7$F$/$l$k!#(BQ7.6$B$r;2>H$N$3$H!#(B



Q16.12: $B%W%m%0%i%`$NCf$+$i(BO/S$B$N%3%^%s%I$r5/F0$7$?$$!#$I$&$9$l$P$h$$(B
        $B$+!#(B

A16.12: system()$B$r;H$(!#(B


             References: K&R II Sec. B6 p. 253; ANSI Sec. 4.10.4.5;
             H&S Sec. 21.2; PCS Sec. 11 p. 179;



Q16.13: O/S$B$N%3%^%s%I$r(Bsystem()$B$G<B9T$7$F!"$=$N=PNO$r%W%m%0%i%`Cf$KFI(B
        $B$_9~$`$N$O$I$&$9$l$P$h$$$N$+!#(B

A16.13: UNIX$B$dB>$N$$$/$D$+$N%7%9%F%`$O(Bpopen()$B%k!<%A%s$rMQ0U$7$F$$$k!#(B
        $B$3$N%k!<%A%s$O%3%^%s%I$rAv$i$;$F$$$k%W%m%;%9$K$D$J$2$?%Q%$%W$X(B
        $B$N(Bstdio$B$N%9%H%j!<%`$r!"=PNO$rFI$_<h$l$k(B($B$"$k$$$OF~NO$rMQ0U$9(B
        $B$k(B)$B$h$&$K@_Dj$9$k$b$N$G$"$k!#JL$NJ}K!$H$7$F$O!"=PNO$r%U%!%$%k(B
        $B$K=q$-=P$7!"8e$+$i%U%!%$%k$r3+$$$FCf?H$rFI$_=P$9$h$&$J%3%^%s%I(B
        $B$rMQ0U$7$F!"$=$l$r8F$S=P$9$3$H$G$"$k(B(Q16.12$B;2>H(B)$B!"!#(B

             References: PCS Sec. 11 p. 169 .



Q16.14: $B%G%#%l%/%H%j$NFbMF$rFI$`$K$O$I$&$9$l$P$h$$$+!#(B

A16.14: opendir()$B$d(Breaddir()$B$,;H$($k$+$I$&$+D4$Y$k$3$H!#$3$l$i$N%k!<%A(B
        $B%s$O$?$$$F$$$N(BUNIX$B%7%9%F%`$K$N$C$F$$$k!#(BMS-DOS$B!"(BVMS$B!"$=$NB>$N(B
        $B%7%9%F%`MQ$N<BAu$bB8:_$9$k(B(MS-DOS$B$K$O<B<AE*$KF1$8;E;v$r$9(B
        $B$k(BFINDFIRST, FINDNEXT$B$H$$$&%k!<%A%s$bB8:_$9$k(B)$B!#(B



Q16.15: $B%7%j%"%k(B(COM)$B%]!<%H$r;H$C$?(BI/O$B$O$I$&$d$l$P$h$$$+!#(B

A16.15: $B$=$l$O%7%9%F%`<!Bh$G$"$k!#(BUNIX$B$G$O$h$/!"(B/dev$B$K$"$k%G%P%$%9$r%*(B
        $B!<%W%s$7$?$j(B(open)$B!"FI$s$@$j(B(read)$B!"=q$-9~$s$@$j(B(write)$B$9$k!#(B
        $B$^$?%G%P%$%9!&%I%i%$%P$N5!G=$r;H$C$F!"(B I/O$B$NFCD'$rD4@0$9$k!#(B
        MS-DOS$B$G$O4pK\E*$J(BBIOS$B$N3d$j9~$_$r;H$&$+!"(B($B$+$J$j$N@-G=$rMW5a(B
        $B$9$k$H$-$O(B)$B@$$NCf$K$?$/$5$s$"$k3d$j9~$_6nF0$N%7%j%"%k(BI/O$B$N%Q%C(B
        $B%1!<%8$r;H$&!#(B




17.$B$=$NB>(B

Q17.1:  $BL@<(E*$K$O=i4|2=$5$l$F$$$J$$JQ?t$N=i4|CM$K$D$$$F!"$I$3$^$G0B?4(B
        $B$7$F2>Dj$9$k$3$H$,$G$-$k$+!#%0%m!<%P%kJQ?t$N=i4|CM$,(B"0"$B$G=i4|(B
        $B2=$5$l$k$N$J$i!"%L%k%]%$%s%?$dIbF0>.?t$K$D$$$F$b(B0$B$G$"$k$3$H$,(B
        $BJ]>Z$5$l$k$N$+!#(B

A17.1:  $B!V@EE*$J!W<wL?$r;}$DJQ?t(B($B$9$J$o$A!"4X?t$N30$G@k8@$7$?JQ?t(B
        $B$d(Bstatic$B$H@k8@$7$?JQ?t(B)$B$O!"%W%m%0%i%^$,!V(B=0$B!W$HBG$A9~$s$@$+$N(B
        $B$h$&$K!"(B0$B$K(B($B%W%m%0%i%`$NN)$A>e$,$j;~$K0lEY$@$1(B)$B=i4|2=$5$l$k$3(B
        $B$H$,J]>Z$5$l$F$$$k!#$9$J$o$A%]%$%s%?$O(B($B@5$7$$7?$N(B:1$B>O;2>H(B)$B%L%k(B
        $B%]%$%s%?$K!"IbF0>.?t$O(B0.0$B$K=i4|2=$5$l$k!#(B

        $B!VF0E*$J!W<wL?$r;}$DJQ?t(B($B$9$J$o$A!"(Bstatic$B@k8@$r$7$F$$$J$$%m!<(B
        $B%+%kJQ?t(B)$B$NCf?H$O!"L@<(E*$K=i4|2=$7$J$$8B$j!"%4%_$G$"$k!#%4%_(B
        $B$,Lr$KN)$D$+$I$&$+$O!"M=B,$G$-$J$$!#(B

        malloc$B$d(Brealloc$B$r;H$C$FF0E*$K3NJ]$7$?NN0h$b!"Cf?H$O%4%_$G$"$k(B
        $B$H9M$($?$[$&$,$$$$!#$@$+$iE,@Z$J%W%m%0%i%`$rMQ0U$7$F=i4|2=$7$J(B
        $B$1$l$P$J$i$J$$!#(B calloc$B$K$h$C$F3NJ]$7$?NN0h$O$9$Y$F$N%S%C%H$,(B0
        $B$G$"$k!#$7$+$7!"$3$N=i4|2=$b!"%]%$%s%?JQ?t$dIbF0>.?tE@I=<($NJQ(B
        $B?t$KBP$7$F$OI,$:$7$bLr$K$?$?$J$$(B (1$B>O$H(BQ3.11$B$r;2>H(B)$B!#(B



Q17.2:  $B2<$N%3!<%I!"K\$+$i$=$N$^$^<L$7$?$N$K!"%3%s%Q%$%k$G$-$J$$!#(B

                     f() {
                         char a[] = "Hello, world!"; }


A17.2:  $B$?$V$s!"7/$N;H$C$F$$$k%3%s%Q%$%i$O(BANSI$B5,3J$,$G$-$kA0$N$b$N$G(B
        $B!V(Bauto$B$N=8@.7?(B:automatic aggregates$B!W(B($BNc(B:static$B$G$J$$%m!<%+%k$J(B
        $BG[Ns$d9=B$BN(B)$B$N=i4|2=$r5v$7$F$J$$!#2sHr:v$H$7$F$O!"G[Ns$r%0%m(B
        $B!<%P%k$K$9$k$+(Bstatic$B$K$7$F!"(B f$B$r8F$V$H$3$m$G(Bstrcpy$B$r;H$C$F=i4|(B
        $B2=$9$k(B ($BJ8;zNsDj?t$r;H$C$F%m!<%+%k$N(Bchar *$BJQ?t$r=i4|2=$9$k$3$H(B
        $B$O$$$D$G$b2DG=$G$"$k!#$?$@$7(BQ17.20$B$r;2>H$N$3$H(B)$B!#(B Q5.16$B$H(BQ5.17
        $B$b;2>H$N$3$H!#(B



Q17.3:  $B$I$&$9$l$P!"0l8l$NBg$-$5$,0[$J$C$?$j!"%P%$%H%*!<%@!<$,0[$J$C$?(B
        $B$j!"IbF0>.?t$NFbItI=8=$,0[$J$k$h$&$J%^%7%s$G$bFI$a$k$h$&$K%G!<(B
        $B%?%U%!%$%k$K=q$-9~$`$3$H$,$G$-$k$N$+!#(B

A17.3:  $B:GNI$N2r$O%F%-%9%H%U%!%$%k(B($B$?$$$F$$$O(BASCII)$B$r;H$&$3$H$G$"$k!#(B
        fprintf$B$r;H$C$F=q$-9~$_!"(Bfscanf$B$NN`$r;H$C$FFI$`(B($BF1MM$N=u8@$O%M(B
        $B%C%H%o!<%/$N%W%m%H%3%k$K$b$"$F$O$^$k(B)$B!#!V%F%-%9%H%U%!%$%k$OBg(B
        $B$-$9$.$F!"$=$NFI$_=q$-$OCY$9$.$k!W$H$$$&H?O@$O5?$C$F$+$+$k$3(B
        $B$H!#$=$N8zN($O$7$P$7$P<BMQ$KBQ$($k$b$N$G$"$k$7!"I8=`E*$JF;6q$@(B
        $B$1$GA`:n$G$-$k$H$$$&MxE@$OH]Dj$G$-$J$$;v<B$G$"$k!#(B

        $B%P%$%J%j%U%)!<%^%C%H$r;H$o$J$1$l$P$J$i$J$$>l9g$G$b!"%]!<%?%S%j(B
        $B%F%#$r8~>e$5$;$kJ}K!$O$"$k!#I8=`$N%U%)!<%^%C%H$rMxMQ$7$F4{B8(B
        $B$N(BI/O$B%i%$%V%i%j$r$&$^$/;H$&$3$H$b2DG=$G$"$k!#I8=`$N%U%)!<%^%C(B
        $B%H$H$7$F$O(BSUN$B$N(B XDR(RFC1014)$B!"(BOSI$B$N(BASN.1$B!"(BCCITT$B$N(BX.409$B!"(BISO
        8825$B!V4pK\Id9f2=B'(B:Basic EncodingRules$B!W$,B8:_$9$k!#(BQ9.11$B$r;2(B
        $B>H$N$3$H!#(B



Q17.4:  $B%U%!%$%k$N??$sCf$+$i0l9T(B($B$"$k$$$O(B1$B%l%3!<%I(B)$B:o=|$9$k$N$O$I$&$d(B
        $B$l$P$h$$$+!#(B

A17.4:  $B%U%!%$%k$r=q$-D>$90J30$K$O!"$?$V$sIT2DG=$@$m$&!#(B Q16.9$B$b;2>H$N(B
        $B$3$H!#(B



Q17.5:  $B4X?t$+$iJ#?t$NCM$rJV$9$3$H$O$G$-$k$+!#(B

A17.5:  $BCM$r3JG<$9$kNN0h$r5/F0$9$kB&$GMQ0U$7$F!"$=$N%"%I%l%9$r%]%$%s%?(B
        $B$H$7$FEO$7$F!"4X?t$KCM$rKd$a$F$b$i$&!#$"$k$$$O!"4X?t$NLa$jCM$r(B
        $B9=B$BN$K$7$F!"$=$N9=B$BN$K4uK>$NCM$r@_Dj$7$F$b$i$&$3$H$,$G$-(B
        $B$k!#(BQ2.17$B!"(BQ3.4$B!"(BQ9.2$B$b;2>H$N$3$H!#(B



Q17.6:  char *$B$NJQ?t$,$"$C$F!"$=$NJQ?t$O4X?t$NL>A0$NJ8;zNs$r;X$7$F$$(B
        $B$k!#$I$&$9$l$P$3$N4X?t$r8F$V$3$H$,$G$-$k$+!#(B

A17.6:  $B0lHVC1=c$JJ}K!$O!"4X?t$NL>A0$H4X?t$X$N%]%$%s%?$NBP1~I=$rMQ0U$9(B
        $B$k$3$H$G$"$k!#(B

                     int function1(), function2();

                     struct {char *name; int (*funcptr)(); } symtab[] =
                             {
                             "function1",    function1,
                             "function2",    function2,
                             };


        $B$=$&$7$FL>A0$r%-!<$K%F!<%V%k$rC5$7!"BP1~$9$k4X?t$X$N%]%$%s%?$r(B
        $B;H$C$F4X?t$r5/F0$9$l$P$h$$!#(BQ9.9$B$H(BQ16.11$B$b;2>H$N$3$H!#(B



Q17.7:  $B;d$N;H$C$F$$$k%7%9%F%`$K$O(B<sgtty.h>$B$,8+Ev$?$i$J$$!#$@$l$+%3%T(B
        $B!<$rAw$C$F$/$l$J$$$@$m$&$+!#(B

A17.7:  $BI8=`$N%X%C%@!<$O!"7/$,;H$C$F$$$k%3%s%Q%$%i!"(BO/S$B!"%W%m%;%C%5$K(B
        $BE,@Z$JDj5A$rM?$($k$h$&$J7A$GB8:_$7$F$$$k!#B>$N?M$N%X%C%@!<%U%!(B
        $B%$%k$r0z$CD%$C$F$-$FF0$/$3$H$r4|BT$9$k$3$H$O$G$-$J$$!#$b$A$m$s(B
        $BAj<j$,A4$/F1$84D6-$r;H$C$F$$$k>l9g$OJL$G$"$k!#%3%s%Q%$%i$N%Y%s(B
        $B%@!<$K2?8N$=$N%U%!%$%k$,6!5k$5$l$J$+$C$?$+?R$M$F$_$k$3$H(B($B$"$k(B
        $B$$$OBe$o$j$rAw$C$F$/$l$k$h$&$K0MMj$7$F$_$k$3$H(B)$B!#(B



Q17.8:  $B$I$&$9$l$P(BC$B$+$i(BFortran($B$"$k$$$O(BC++,BASIC,Pascal,ADA,lisp)$B$N4X(B
        $B?t$r5/F0$9$k$3$H$,$G$-$k$+(B($B$"$k$$$O$=$NH?BP$O(B)$B!#(B

A17.8:  $B2rEz$O!";HMQCf$N%^%7%s$d%3%s%Q%$%i$,4X?t$r5/F0$9$kJ}K!$K0MB8$9(B
        $B$k!#$R$g$C$H$7$?$i$^$C$?$/IT2DG=$+$b$7$l$J$$!#%3%s%Q%$%i$N;qNA(B
        $B$rCm0U?<$/FI$`$3$H!#$H$-$I$-!VJ#?t$N%W%m%0%i%`8@8l$r;H$C$?%W%m(B
        $B%0%i%_%s%0$N<j0z$-!W$,:\$C$F$$$k!#$=$l$G$b0z?t$rEO$9J}K!$d!"<B(B
        $B9T;~$NE,@Z$JN)$A>e$,$j$rJ]>Z$9$k$3$H$O!"?@HkE*$G$9$i$"$k!#$=$N(B
        $BB>$K(BGlenn Geers$B:n$N(BFORT.Z$B$+$i$b<j3]$+$j$,F@$i$l$k!#$3$N%W%m%0(B
        $B%i%`$O(Bsuphys.physics.su.oz.au$B$N(Bsrc$B%G%#%l%/%H%j$KCV$+$l$F$$$k!#(B

        cfortran.h$B$O!"@$$NCf$K=P$^$o$C$F$$$kB?$/$N%^%7%s>e(B
        $B$G!"(BC/Fortran$B4V$N%$%s%?%U%'!<%9$r4JC1$K$9$k!#$3$l(B
        $B$O(Bzebra.desy.de(131.169.2.244)$B$h$j(B anonymous ftp$B$G<j$KF~$l$k$3(B
        $B$H$,$G$-$k!#(B

        C++$B$G$O30It4X?t$N@k8@$K(B"C"$B=$>~;R$rIU$1$k$3$H$G!"(BC$B$N4X?t$N5/F0(B
        $BJ}K!$K=>$C$F5/F0$9$k$3$H$r;XDj$9$k$3$H$,$G$-$k!#(B



Q17.9:  Pascal($B$"$k$$$O(BFortran,LISP,Ada,AWK,"$B8E$$(BC")$B$r(BC$B$KJQ49$9$k%W%m(B
        $B%0%i%`$rCN$i$J$$$+!#(B

A17.9:  $B$$$/$D$+$N%Q%V%j%C%/%I%a%$%s$N%W%m%0%i%`$,B8:_$9$k!#(B


p2c     Dave Gillespie$B$K$h$C$F=q$+$l!"(Bcomp.sources.unix$B$K(B1990$BG/(B4$B7n(B
        (Volume 21)$B$K%]%9%H$5$l$?!#(Bcsvax.cs.caltech.edu$B$+$i(Banonymous
        ftp$B$9$k$3$H$b$G$-$k!#%U%!%$%kL>$O(Bpub/p2c-1.20.tar.Z$B!#(B

ptoc    $B$3$l$b(Bcomp.sources.unix$B$K%]%9%H$5$l$?$b$N!#$3$l$O(BPascal$B$G=q$+(B
        $B$l$F$$$k(B(comp.sources.unix$B$N(BVolume10$B!"%Q%C%A$O(BVolume 13?$B$K$"(B
        $B$k(B)$B!#(B

f2c     $B%Y%k8&$H(BBellcore$B$H%+!<%M%.!<%a%m%sBg3X$N6&F13+H/$K$h$k$b$N$G$"(B
        $B$k!#(B f2c$B$K$D$$$FCN$j$?$1$l$P!V(Bsend index fromf2c$B!W$H$$$&%a%C%;(B
        $B!<%8$H$H$b$K(B netlib@research.att.com$B$"$k$$$O(Breseach!netlib$B$K%a(B
        $B%$%k$r=P$9$3$H!#(B (research.att.com$B$N%G%#%l%/%H%j(Bdist/f2c$B$+$i(B
        $B$N(Banonymous ftp$B$b2DG=$G$"$k!#(B)

        $B$3$N(BFAQ$B$NJT<T$O!">&IJ$H$J$C$?JQ49%D!<%k$d!"$3$3$K5s$2$F$$$J$$(B
        $B8@8l$H$N4V$NJQ49%D!<%k$N%j%9%H$rMQ0U$7$F$$$k!#(B

        Q5.3$B$b;2>H$N$3$H!#(B



Q17.10: C++$B$O(BC$B$N>e0L=89g$+!#(BC++$B$N%3%s%Q%$%i$r(BC$B$N%3!<%I$N%3%s%Q%$%k$K;H(B
        $B$&$3$H$O$G$-$k$+!#(B

A17.10: C++$B$O(BC$B$K5/8;$r;}$A!"BgItJ,(BC$B$K4p$E$/!#$7$+$7(BC$B8@8l$H$7$F$O@5$7$$(B
        $B9=B$$G$"$k$,!"(BC++$B$G$O0cK!$J$b$N$,$$$/$D$+B8:_$9$k(B ($B$=$l$G$b(BC$B$N(B
        $B%W%m%0%i%`$NB?$/$O(BC++$B$N4D6-$G@5$7$/%3%s%Q%$%k$G$-$k(B)$B!#(B



Q17.11:

        $B$3$s$J$N$,M_$7$$(B                 | $B0J2<$NL>A0$N%W%m%0%i%`$rC5$9$3$H(B(Q17.12$B$b;2>H(B)
        _________________________________|_______________________________________________
        C$B$NAj8_;2>H$r@8@.$9$k%W%m%0%i%`(B  | cflow, calls, cscope
        C$B$N@07A%=%U%H(B/$B%W%j%F%#!&%W%j%s%?(B | cb, indent



Q17.12: $B$I$3$+$i!"$3$l$i$N%Q%V%j%C%/%I%a%$%s$N%W%m%0%i%`$r<j$KF~$l$k$3(B
        $B$H$,$G$-$k$N$+!#(B

A17.12: Usenet$B$X%"%/%;%9$G$-$k$N$J$i!"(Bcomp.sources.unix$B$d(B
        comp.sources.misc$B$H$$$C$?%0%k!<%W$X$NDj4|E*$J%]%9%H$r;2>H$N$3(B
        $B$H!#$=$3$K$OJ]B8$NJ}?K$d<h$j=P$7$+$?$,5-=R$7$F$"$k!#IaDL(B
        $B$O(Banonymous ftp$B$d!"Cf1{$N9-$/3+J|$7$F$$$k%5%$%H(B:$B$?$H$((B
        $B$P(Buunet(ftp.uu.net 192.48.96.9)$B$+$i$N(Buucp$B$K$h$C$F<j$KF~$l$k$3(B
        $B$H$,2DG=$G$"$k!#$7$+$7$J$,$i!"$3$N5-;v$O%W%m%0%i%`$rJ]B8$7$F$$(B
        $B$k%5%$%H$N$9$Y$F$d!"%5%$%H$K%"%/%;%9$9$kJ}K!$rFM$-;_$a$?$j!"5s(B
        $B$2$k$3$H$O$G$-$J$$!#(B

        $B?tCM$r07$&%U%j!<!&%=%U%H%&%(%"$NL\O?$r(BAjay Shah$B$,4IM}$7$F$$(B
        $B$k!#$=$NL\O?$ODj4|E*$K%]%9%H$5$l!"$3$N(BFAQ$B%j%9%H$,J]B8$5$l$F$$(B
        $B$k$H$3$m$G<j$KF~$k(B (Q17.33$B$r;2>H(B)$B!#%K%e!<%9%0%k!<(B
        $B%W(Bcomp.archives$B$N5-;v$K$OMM!9$J>pJs$N!"(Banonymous ftp$B$K$h$kF~<j(B
        $BJ}K!$N>R2p$,4^$^$l$F$$$k!#!V(Barchie$B!W%a%$%k%5!<%P!<$O!"$I(B
        $B$N(Banonymous ftp$B%5%$%H$,$I$s$J>pJs$rJ]B8$7$F$$$k$+65$($F$/$l(B
        $B$k!#>\:Y$O%a%C%;!<%8!V(Bhelp$B!W$r(Barchie@quiche.cs.mcgill.ca$B$KAw$k(B
        $B$3$H$GF@$i$l$k!#:G8e$K(Bcomp.sources.wanted$B$,!"$?$$$F$$$O%=!<%9$N(B
        $B$"$j$+$r$?$:$M$k$N$K:G$b$U$5$o$7$$%K%e!<%9%0%k!<%W$G$"$k!#$=$N(B
        $B>l9g$G$b%]%9%H$9$kA0$K(BFAQ$B$N%j%9%H$G$"$k!V(BHow to find sources(
        $B$I$&$d$C$F%=!<%9$r8+$D$+$l$P$h$$$+(B)$B!W$r%A%'%C%/$9$k$3$H!#(B



Q17.13: $B<!$N9q:]Fq2r(BC$B%3!<%I%3%s%F%9%H(B:International Obfuscated C Code
        Contest(IOCCC)$B$O$$$D3+$+$l$k$N$+!#$I$&$9$l$P:#2s$d@N$N<x>^:n$r(B
        $B<j$KF~$l$k$3$H$,$G$-$k$N$+!#(B

A17.13: $B%3%s%F%9%H$O(B3$B7n$NF,$+$i(B4$B7n$NH>$P$K$o$?$C$F3+$+$l$k!#:G?7$N%k!<(B
        $B%k$d$=$N30$N>pJs$rF@$k$K$O(BSubject$B$K!V(Bsendrules$B!W$H=q$$$F(B

                {apple,pyramin,sun,uunet}!hoptoad!obfuscate
                $B$^$?$O(B
                obfuscate@toad.com

        $B$KAw$l$P$h$$(B($B$3$l$i$N%"%I%l%9$O=PE8$N?=$79~$_MQ$G$O$J$$(B)$B!#(B

        $B%3%s%F%9%H$N<u>^<T$O(B6$B7nH>$P$N2F$N(BUsenix$B$N2q5D$G:G=i$KH/I=$5(B
        $B$l!"(B7$B7n$K%M%C%H$K%]%9%H$5$l$k!#@N$N<u>^:nIJ$O(B uunet
        $B$N(B~/pub/ioccc$B$H$$$&%G%#%l%/%H%j$+$i<j$KF~$l$k$3$H$,$G$-(B
        $B$k(B(Q17.12$B$r;2>H(B)$B!#(B

        $B:G8e$N<jCJ$H$7$F!"2a5n$N<x>^:n$O>e5-$N%"%I%l%9$K(BSubject:$B$H$7$F(B
        $B!V(BsendYEAR$B!W$rIU$1$?(Be-mail$B$rAw$k$3$H$K$h$C$FF@$i$l$k!#$3$3(B
        $B$G(BYEAR$B$O(B4$B$1$?$NG/$+!"G/EY$NHO0O;XDj!"$"$k$$$O(Ball$B$G$"$k!#(B



Q17.14: $B$J$<(BC$B8@8l$N%3%a%s%H$OF~$l;R$K$9$k$3$H$,$G$-$J$$$N$+!#%3%a%s%H(B
        $B$r4^$`%3!<%I$r%3%a%s%H%"%&%H$9$k$N$O$I$&$9$l$P$h$$$+!#0zMQId$G(B
        $B$O$5$^$l$?J8;zNs$,!V(B/*$B!W$d!V(B*/$B!W$r4^$`$3$H$O5v$5$l$F$$$k$N$+!#(B

A17.14: $B%3%a%s%H$NF~$l;R$K$OMxE@$h$j$b7gE@$N$[$&$,B?$$!#6vA3%3%a%s%H$N(B
        $BCf$K!V(B/*$B!W$r4^$s$@$^$^%3%a%s%H$rJD$8$k;v$rK:$l$k2DG=@-$,$"$k$+(B
        $B$i$G$"$k!#$@$+$i%3%a%s%H$r4^$`$h$&$JBg$-$JNN0h$r(B"$B%3%a%s%H%"%&(B
        $B%H(B"$B$9$k$H$-$O(B #ifdef$B$d(B#if 0$B$r;H$C$?$[$&$,$$$$!#(B

        $BJ8;zNs(B/*$B$d(B*/$B$OFs=E0zMQ6g$N$J$+$G$OFCJL$J0UL#$r;}$?$J$$!#$@$+$i(B
        $B$3$l$i$NJ8;zNs$,%3%a%s%H$r0UL#$9$k;v$O$J$$!#$J$<$J$i%W%m%0%i%`(B
        $B$,(B($BFC$K=PNO$H$7$F(BC$B$N%3!<%I$r@8@.$9$k%W%m%0%i%`$,(B)$B!"$3$l$i$NJ8(B
        $B;zNs$r=PNO$7$?$$$+$b$7$l$J$$$+$i!#(B

             References: ANSI Appendix E p. 198, Rationale Sec. 3.1.9
             p. 33.



Q17.15: $BJ8;z$KBP1~$9$k(BASCII$B$NCM$d!"(BASCII$B$NCM$KBP1~$9$kJ8;z$O$I$&$9$l$P(B
        $BF@$i$l$k$+!#(B

A17.15: C$B$GJ8;z$O!"$=$NCM$KBP1~$9$k(B($B$=$N5!3#$,;H$C$F$$$kJ8;z=89g$N(B)$B>.(B
        $B$5$J@0?t$GI=8=$5$l$k!#$@$+$iJQ49%k!<%A%s$OI,MW$J$$!#J8;z$r;}$C(B
        $B$F$$$k$H$$$&$3$H$O!"$=$NCM$r;}$C$F$$$k$H$$$&$3$H$G$"$k!#(B



Q17.16: $B%S%C%H$N=89g$dG[Ns$O$I$&$d$C$F<BAu$9$l$P$$$$$N$+!#(B

A17.16: char$B$d(Bint$B$NG[Ns$r;H$&!#$3$N$H$-0J2<$N$h$&$J%^%/%m$r;H$C$F%"%/(B
        $B%;%9$9$k$3$H!#(B (<limits.h>$B$,$J$$$H$-$O(BCHAR_BIT$B$NBe$j$K(B8$B$r;H$&(B)

                #include <limits.h>             /* for CHAR_BIT */

                #define BITMASK(bit) (1 << ((bit) % CHAR_BIT))
                #define BITSLOT(bit) ((bit) / CHAR_BIT)
                #define BITSET(ary, bit) ((ary)[BITSLOT(bit)] |= BITMASK(bit))
                #define BITTEST(ary, bit) ((ary)[BITSLOT(bit)] & BITMASK(bit))



Q17.17: $BCM$NCf$K@_Dj$5$l$F$$$k%S%C%H$N?t$r?t$($k$b$C$H$b8zN($N$h$$J}K!(B
        $B$r65$($FM_$7$$!#(B


A17.17: $B$3$N<j$N%S%C%H$r$$$8$kLdBj$O;2>HMQ%F!<%V%k(B(lookup table)$B$r;H$&(B
        $B$3$H$G!"9bB.$+$DG=N($h$/=hM}$9$k$3$H$,$G$-$k(B($B$?$@$7<!$N<ALd$r(B
        $B;2>H$N$3$H(B)$B!#(B



Q17.18: $B$I$&$9$l$P!"$3$N%3!<%I$r$b$C$H8zN(E*$K$9$k$3$H$,$G$-$k$+!#(B

A17.18: $B8zN($O(Bcomp.lang.c$B$N$*5$$KF~$j$NOCBj$G$"$k!#$?$@$7?M$,$h$/!"$=(B
        $B$&$G$"$k$H9M$($F$$$k$[$I$O!"$?$$$7$?LdBj$G$O$J$$!#$?$$$F$$$N%W(B
        $B%m%0%i%`$N$?$$$F$$$N%3!<%I$O=hM}B.EY$rMW5a$5$l$F$$$k$o$1$G$O$J(B
        $B$$!#=hM}B.EY$rMW5a$7$J$$%3!<%I$N>l9g!":GBg8B$K8zN(2=$r7W$k$h(B
        $B$j!"$o$+$j$d$9$5$d0\?"@-$r9M$($k$[$&$,Bg;v$G$"$k(B($B%3%s%T%e!<%?(B
        $B$OHs>o$K9bB.$G$"$k!#$@$+$i(B"$BG=N($N0-$$(B"$B%3!<%I$bL\N)$C$?CY$l$J$/(B
        $BAv$k$+$b$7$l$J$$$H$$$&$3$H$r$*K:$l$J$/(B)$B!#(B

        $B%W%m%0%i%`$NCf$G$I$3$,LdBjE@$K$J$k$+M=A[$9$k$3$H$OHs>o$K:$Fq$G(B
        $B$"$k!#8zN($K4X?4$,$"$k$N$J$i%W%m%0%i%`$N$I$N>l=j$K4X?4$rCV$/$Y(B
        $B$-$+D4$Y$k$?$a$K!"%W%m%U%!%$%k5!G=$r;}$D%=%U%H%&%'%"$r;H$&$3$H(B
        $B$OBg;v$G$"$k!#$?$$$F$$$O!"<B:]$N7W;;;~4V$O(BI/O$B$d%a%b%j$N3d$jEv(B
        $B$F$J$I$N<~JUAuCV$NA`:n$K=8Cf$9$k!#$=$7$F$3$l$i$N:n6H$O!"%P%C%U(B
        $B%!%j%s%0$d%-%c%C%7%s%0$N5;$r;H$C$F9bB.2=$9$k$3$H$,$G$-$k!#(B

        $B%3!<%I$N;~4VE*@)Ls$,87$7$$$H$3$m$K$O!"$h$$%"%k%4%j%:%`$rA*$V$3(B
        $B$H$,0lHVBg;v$G$"$k!#%3!<%I$r$$$8$k$3$H$G6I=jE*$K:GE,2=$9$k$3$H(B
        $B$K$O!"$?$$$7$?0UL#$O$J$$!#$7$P$7$PDs0F$5$l$k(B"$B8zN(E*$J%3!<%G%#(B
        $B%s%0$N5;(B"$B$NB?$/$O(B ($B$?$H$($P(B2$B$N$Y$->h$r3]$1$k$H$-$K3]$1;;$NBe$j(B
        $B$K%7%U%H1i;;;R$r$D$+$&$3$H(B)$B!"C1=c$J%3%s%Q%$%i$G$5$(<+F0E*$K$d(B
        $B$C$F$/$l$k!#IT4oMQ$J(B"$B:GE,2=(B"$B$N;n$_$O%3!<%I$r$U$/$i$^$;@-G=$r0-(B
        $B2=$5$;$k2DG=@-$5$($"$k!#(B

        $B8zN(2=$N%H%l!<%I%*%U$K4X$9$k5DO@$d!"8zN(2=$,K\Ev$K=EMW$J$H$-$N(B
        $BNI$$=u8@$K$D$$$F$O!X%W%m%0%i%`=qK!!Y$N(B7$B>O$d!X%W%m%0%i%`2~NI(B
        $B3X!Y$r;29M$N$3$H!#(B



Q17.19: $B%]%$%s%?$OK\Ev$KG[Ns$h$j$b9bB.$J$N$+!#4X?t8F$S=P$7$r$9$k$H$I$l(B
        $B$@$1CY$/$J$k$N$+!#(B++i$B$O(Bi=i+1$B$h$j$b9bB.$+!#(B

A17.19: $B$b$A$m$s!"$3$l$i$N<ALd$dB?$/$NN`;w$N<ALd$X$N@53N$J2rEz$O!";H$C(B
        $B$F$$$k%W%m%;%C%5$d%3%s%Q%$%i$K0MB8$9$k!#CN$j$?$1$l$P%F%9%H%W%m(B
        $B%0%i%`$GCm0U$7$FB,Dj$9$k$7$+$J$$(B($B$7$P$7$P!"$=$N:9$OHs>o$K>.$5(B
        $B$$$N$G!":9$rCN$k$N$K2?K|2s$b$/$jJV$7$,I,MW$H$J$k!#$b$7<j$KF~$k(B
        $B$N$J$i!"N>J}$N5;$r;H$C$?%3!<%I$,F1$8%3!<%I$r@8@.$7$?$+$I$&$+!"(B
        $B%3%s%Q%$%i$N@8@.$7$?%"%;%s%V%i=PNO$r8+Hf$Y$F$_$k$3$H(B)$B!#(B

        "$B$?$$$F$$$O(B"$BBg$-$JG[Ns$NCf$r%"%/%;%9$7$F$^$o$k$N$K%]%$%s%?$r;H(B
        $B$&$[$&$,!"G[Ns$NE:$(;z$r;H$&$h$j9bB.$G$"$k$,!"H?BP$,@.$jN)$D%W(B
        $B%m%;%C%5$bB8:_$9$k!#(B

        $B4X?t8F$S=P$7$O!"%$%s%i%$%s$G5-=R$9$k$h$j$b!"$=$l$@$1L@$i$+$KCY(B
        $B$/$J$k$1$l$I!"%b%8%e!<%k2=$d%3!<%I$N$o$+$j$d$9$5$KLr$KN)$C$F$$(B
        $B$k$3$H$r9M$($l$P!";H$o$J$$M}M3$J$s$F$a$C$?$KB8:_$7$J$$!#(B

        i = i + 1$B$H$$$C$?=q$-J}$r=q$-D>$9A0$K!"Aj<j$O(BC$B%3%s%Q%$%i$G$"$C(B
        $B$F%-!<F~NO$r%W%m%0%i%`$G$-$kEEBn$rAj<j$K$7$F$$$k$N$G$O$J$$$3$H(B
        $B$r$*K:$l$J$/!#$h$/$G$-$?%3%s%Q%$%i$J$i(Bi++$B!"(B++i$B!"(Bi = i +1$B!"$I$l(B
        $B$K$D$$$F$bF1$8%3!<%I$r@8@.$9$k!#(Bi =i + 1$B$r2!$7$N$1$F(B++i$B$d(Bi +=
        1$B$r;H$&$N$O!"=q$-J}$NLL$+$i$G$"$C$F8zN($rLdBj$K$7$F$$$k$+$i$G(B
        $B$O$J$$(B(Q4.7$B$b;2>H$N$3$H(B)$B!#(B



Q17.20: $B$J$<0J2<$N%3!<%I$O%/%i%C%7%e$9$k$N$+!#(B

                     char *p = "Hello, world!";
                     p[0] = tolower(p[0]);


A17.20: $BJ8;zNsDj?t$O!"(B($B4pK\E*$K$O(B)$BG[Ns$N=i4|2=;XDj;R$H$7$F;H$o$l$k$H$-(B
        $B$r=|$$$F$O!"I,$:$7$bJQ992DG=$G$O$J$$!#0J2<$NJ}K!$r;n$9$3$H!#(B

                     char a[] = "Hello, world!";

        ($B8E$$%3!<%I$r%3%s%Q%$%k$9$k$?$a$K!"J8;zNs$r=q$-9~$_2DG=$K$9$k(B
        $B$+$I$&$+@)8f$9$k%9%$%C%A$r;}$C$F$$$k%3%s%Q%$%i$b$"(B
        $B$k(B)$B!#(BQ2.1$B!"(BQ2.2$B!"(BQ17.2$B$b;2>H$N$3$H!#(B


             References: ANSI Sec. 3.1.4 .



Q17.21: $B%W%m%0%i%`$,Av$kA0$K%/%i%C%7%e$9$k(B($B%G%P%C%,$r;H$C$F0l9T$E$D%9(B
        $B%F%C%W<B9T$GDI$&$H(Bmain$B$N:G=i$N9T$r<B9T$9$kA0$K;`$s$G$7$^$&(B)$B!#(B


A17.21: $B$3$N%W%m%0%i%`$O!"Hs>o$KBg$-$J(B(1$B%-%m%P%$%H$+$=$l0J>e$N(B)$B%m!<%+(B
        $B%k$JG[Ns$r;}$C$F$$$k$O$:$@!#B?$/$N%7%9%F%`$G$O%9%?%C%/$NBg$-$5(B
        $B$O8GDj$@$7!"(BUNIX$B$N$h$&$K%9%?%C%/$rF0E*$K3NJ]$9$k%7%9%F%`$G$b%9(B
        $B%?%C%/$N%5%$%:$,FMA35pBg$K$J$k$H!":.Mp$9$k>l9g$,$"$k!#(B

        $BBg$-$JG[Ns$r;H$&$H$-$O(Bstatic$B$H@k8@$7$?$[$&$,$$$$(B($B$b$A$m$s:F5"(B
        $B8F$S=P$7$9$k$?$S$K?7$7$$G[Ns$,I,MW$J>l9g$O=|$/(B)$B!#(B (Q9.4$B$b;2>H(B
        $B$N$3$H(B)



Q17.22: $B!V(BSegmentation violation$B!W$H$+!V(BBuserror$B!W$O2?$r0UL#$9$k$N$+!#(B

A17.22: $B%"%/%;%9$9$Y$-$G$J$$5-21NN0h$K%W%m%0%i%`$,%"%/%;%9$7$h$&$H$7$?(B
        $B$3$H$r0UL#$7$F$$$k!#$-$C$H%]%$%s%?$N;H$$J}$,E,@Z$G$J$+$C$?$+$i(B
        $B$K0c$$$J$$!#$3$&$$$&$3$H$O=i4|2=$5$l$F$$$J$$%]%$%s%?$H$+!"@5$7(B
        $B$/3NJ]$5$l$F$$$J$$NN0h$r;X$9%]%$%s%?(B(Q3.1$B!"(BQ3.2$B;2>H(B)$B$d!"(B
        malloc(Q17.23$B;2>H(B)$B$d(Bscanf(Q11.3$B;2>H(B)$B$r;H$&$H$h$/5/$3$k!#(B



Q17.23: $B%W%m%0%i%`$,K=Av$7$?!#$I$&$b(Bmalloc$B$NCf$G$*$+$7$/$J$C$F$$$k$h$&(B
        $B$@!#$?$@;d$K$O$J$K$,0-$$$N$+$o$+$i$J$$!#(B

Q17.23: malloc$B$NFbIt$N%G!<%?9=B$$r2u$9$3$H$O!";DG0$J$,$iHs>o$KMF0W$G$"(B
        $B$k!#$7$+$b0z$-5/$3$5$l$k>c32$ODI@W$7$K$/$$$b$N$H$J$k$3$H$,$"(B
        $B$k!#$$$A$P$s$h$/$"$k>c32$N85$O!"(Bmalloc$B$7$?NN0h$K3NJ]$7$?%5%$%:(B
        $B$h$j$bB?$/=q$-9~$s$G$7$^$&$3$H$G$"$k!#$h$/$"$kNc$O!"Bg$-(B
        $B$5(Bstrlen(s)+1$B$G$O$J$/!"Bg$-$5(Bstrlen(s)$B$@$1(Bmalloc$B$G3NJ]$9$k$3$H(B
        $B$G$"$k!#B>$K$O%L%k%]%$%s%?$d(Bmalloc$B$,3NJ]$7$?@h$G$O$J$$%]%$%s%?(B
        $B$r!"(Bfree$B$r;H$C$F2rJ|$9$k$3$H$b>c32$r0z$-5/$3$9(B(Q3.12$B$r;2>H(B)$B!#(B

        malloc$B$K4X$9$kLdBj$N2r7h$rMF0W$K$9$k$h$&$J%G%P%C%0;Y1g%Q%C%1!<(B
        $B%8$,=P$^$o$C$F$$$k!#?M5$$N$"$k$b$N$N0l$D$O(Bcomp.sources.misc$B$K(B
        1992$BG/$N(B9$B7n$K%]%9%H$5$l$?(BConor P. Cahill$B$N!V(Bdbmalloc$B!W$G$"$k!#(B
        $B$=$NB>$K$O(Bcomp.sources.unix$B$N%"!<%+%$%V$N%\%j%e!<%`(B27$B$+$i<j$K(B
        $BF~$k!V(Bleak$B!W!"(B Fidonet$B$N(BC_ECHO$B$H$$$&(BECHO$B$K$"$k(BSnippets($B$"$k$$(B
        $B$O(Barchie$B$KJ9$1!#(BQ17.12$B$r;2>H(B)$B$K$"$k(B JMalloc.c
        $B$H(BMalloc.h$B!"(Bdorado.crpht.lu$B$N%G%#%l%/%H%j(Bpub/sources/memdebug
        $B$K$"$k(B MEMDEBUG$B$,$"$k!#(BQ17.12$B$b;2>H$N$3$H!#(B



Q17.24: C$B%3%s%Q%$%i$NBEEv@-$r8!::$9$k0lO"$N%F%9%H$r$@$l$+;}$C$F$$$J$$(B
        $B$+!#(B

A17.24: Plum Hall($B0JA0$O(BCardiff,NJ$B!"8=:_$O(BHawaii)$B$,Gd$C$F$$$k!#(B FSF
        $B$N(BGNU C(gcc)$B$NG[I[$K$O(Bc-torture-test.tar.Z$B$H$$$&%Q%C%1!<%8$,4^(B
        $B$^$l$F$$$k!#$3$l$O%3%s%Q%$%i$N$h$/$"$kLdBjE@$r%A%'%C%/$9$k$b$N(B
        $B$G$"$k!#(B Kahan$B$N%Q%i%N%$%"!&%F%9%H$O(Bresearch.att.com$B$N%G%#%l%/(B
        $B%H%j(Bnetlib/paranoia$B$+$i<j$KF~$l$k$3$H$,$G$-$k!#$3$l$O(BC$B$NIbF0>.(B
        $B?tE@7W;;$N<BAu$K87$7$$%F%9%H$r9T$&!#(B



Q17.19: C$B8@8l$NJ8K!$r(BYACC$B$G=q$$$?$b$N$O!"$I$3$G<j$KF~$k$+!#(B

A17.19: $B:G$b3N$+$JJ8K!$OEvA3(BANSI$B5,3J$NCf$K$"$k!#$=$NB>$K(BJim Roskind$B$K(B
        $B$h$k$b$N$,(Bics.uci.edu$B$N%G%#%l%/%H%j(Bpub/*grammar*$B$KCV$+$l$F$$(B
        $B$k!#(B ANSI$BJ8K!$KFyIU$1$7$FF0$/$h$&$K$7$?$b$N$,(B(Jeff Lee$B$K$h$k(B)
        uunet(Q17.12$B$r;2>H(B)$B$N(B usenet/net.sources/ansi.c.grammar.Z$B$K!"(B
        $BBP1~$9$k;z6g2r@O%D!<%k$H$H$b$KCV$+$l$F$$$k!#(B FSF$B$N(BGNU C$B%3%s%Q(B
        $B%$%i$OJ8K!$r4^$s$G$$$k!#(BK&R$B$NBh(B2$BHG$NIUO?$K$b$D$$$F$$$k!#(B

             References: ANSI Sec. A.2 .



Q17.26: $B<0$r9=J82r@O$7$F!"<0$N1i;;7k2L$rF@$k%3!<%I$,M_$7$$!#(B

A17.26: 2$B$D$N%Q%C%1!<%8$,F~<j2DG=$G$"$k!#0l$DL\$O!V(Bdefunc$B!W$H$$$&%Q%C(B
        $B%1!<%8!#(B comp.source.misc$B$K(B1993$BG/(B12$B7n(B(V41 i32,33)$B$K!"$^(B
        $B$?(Balt.sources$B$K(B 1994$BG/(B1$B7n$K%]%9%H$5$l!"(B sunsite.unc.edu$B$N%G%#(B
        $B%l%/%H%j(Bpub/packages/development/libraries/defunc-1.3.tar.Z$B$+(B
        $B$iF~<j2DG=$G$"$k!#$b$&0l$D$O!V(Bparse$B!W(B
        $B$G(Blamont.ldgo.columbia.edu$B$+$iF~<j2DG=$G$"$k!#(B



Q17.27: "$B6a;w$N(B"strcmp$B$H$G$b$$$&$h$&$J%k!<%A%s$,M_$7$$!#Fs$D$NJ8;zNs$,(B
        $B6a$$!"$1$l$II,$:$7$b$T$C$?$j$G$J$/$F$b$h$$!"$+$I$&$+$r%A%'%C%/(B
        $B$9$k%k!<%A%s$,M_$7$$!#(B

A17.27: $B$3$N<j$N$3$H$r$9$kEAE}E*$J%k!<%A%s$O(B'soudex"$B%"%k%4%j%:%`$K4X$j(B
        $B$,$"$k!#$3$N%"%k%4%j%:%`$OF1$8MM$JH/2;$NC18l$rF1$8?tCM$N%3!<%I(B
        $B$K%^%C%W$9$k$N$K;H$o$l$k!#(Bsoudex$B$O%I%J%k%I!&%/%L!<%9$N8EE5$N!X(B
        $B4pK\;;K!!Y$NC5:w$H@0Ns$N4,$G5-=R$5$l$F$$$k!#(B



Q17.28: $BF|IU$+$iMKF|$r5a$a$kJ}K!$O!#(B

A17.28: $B%k!<%A%s(Bmktime(Q12.6$B!"(BQ12.7$B$r;2>H(B)$B$r;H$&$+!"(BZeller$B$N8x<0$r;H$&(B
        $B$+!"(B sci.math$B$N(BFAQ$B$r;2>H$9$k$+!"$"$k$$$O:dK\CRI'$,%]%9%H$7$?0J(B
        $B2<$N%3!<%I$r;n$9$3$H!#(B

         dayofweek(y, m, d)      /* 0 = Sunday */
         int y, m, d;            /* 1 <= m <= 12,  y > 1752 or so */
         {
             static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
             y -= m < 3;
             return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
         }




Q17.29: $B5*85(B2000$BG/$O$&$k$&G/$+!#(B(year % 4 == 0)$B$O$&$k$&G/$+$I$&$+$N@5(B
        $B3N$J%F%9%H$+!#(B

A17.29: YES$B$G$b$"$j(BNO$B$G$b$"$k!#%0%l%4%j%*Nq$N%+%l%s%@!<MQ$N@5$7$$<0$O(B
        $B0J2<$N<0$GI=$o$5$l$k!#(B
             year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
        $B>\:Y$K$D$$$F$O!"$^$H$b$JE7J83XG/4U$+$=$NB>$N;29M=q$r8+$k$3$H!#(B



Q17.30: $B!V(Bchar$B!W$H$$$&$N$O$I$&H/2;$9$k$N$+!#(B

A17.30: C$B8@8l$N%-!<%o!<%I$N!V(Bchar$B!W$NH/2;$N;EJ}$O>/$J$/$H$b(B3$BDL$j$O$"(B
        $B$k!#!V(Bchar($B%A%c!<(B)$B!W!"!V(Bcare($B%1%"(B)$B!W!"!V(Bcar($B%+!<(B)$B!W$N$h$&$KH/(B
        $B2;$9$k!#$I$l$r;H$C$F$b$$$$!#(B



Q17.31: C$B8@8l$r3X$V$N$K$h$$K\$O(B?

A17.31: Mitch Wright$B$,(B C$B$H(BUNIX$B$NCm<aIU$-$NJ88%0lMw$r4IM}$7$F$$$k!#$3$l(B
        $B$O(B ftp.rahul.net$B$N%G%#%l%/%H%j(Bpub/mitch/YABL$B$+$i(Banonymous ftp
        $B$,2DG=$G$"$k!#(B

        FAQ$B%j%9%H$NJT<T$O!"$3$N<ALd$N$3$l$^$G$N2sEz$r=8$a$?$b$N$r;}$C(B
        $B$F$$$k!#4uK>$,$"$l$PAw$k!#(B



Q17.32: $B%M%C%H>e$KN.$l$F$$$k(BC$B$N652J=q$O$"$k$+!#(B

A17.32: $B>/$J$/$H$b(B2$B$D$"$k!#(B Christopher Sawtell$B$N!X(BC$B%W%m%0%i%^$X$N3P$((B
        $B=q$-(B:Notes for C programmers$B!Y(B
        $B0J2<$N%5%$%H$+$i<j$KF~$k!#(B

                svr-ftp.eng.cam.ac.uk:misc/sawtell_C.shar
                garbo.uwasa.fi:/pc/c/c-lesson.zip
                paris7.jussieu.fr:/contributions/docs


        Tim Love$B$N!X(BC for Programmers$B!Y(B
        svr-ftp.eng.cam.ac.uk$B$N(Bmisc directory$B%G%#%l%/%H%j$+$iF~<j2D!#(B



Q17.33: $B$3$N%j%9%H$r$b$&0lItM_$7$$$,$I$&$7$?$i$h$$$+!#8E$$%j%9%H$O$I$&(B
        $B$+!#(B

A17.33: $B%M%C%H$+$i$R$C$Q$C$F$/$l$P$h$$!#7n;O$a$K(Bcomp.lang.c$B$K%]%9%H$5(B
        $B$l$k!#(B Expire:$B9TIU$-$G!"(B1$B%+7n$O;D$C$F$$$k!#C;=LHG$bMQ0U$7$F$$(B
        $B$k(B($B%]%9%H$b$7$F$$$k(B)$B$7!"BgI}$KJQ99$7$?HG$K$OJQ99E@$N%j%9%H$bMQ(B
        $B0U$7$F$$$k!#$3$l$i$N%j%9%H$O%K%e!<%9%0%k!<%W(Bcomp.answers$B$d(B
        news.answers$B$K$b%]%9%H$5$l$k!#$3$N(BFAQ$B$b4^$a$F(Bnews.answers$B$X$N(B
        $B%]%9%H$d$=$NB>$N(BFAQ$B$rJ]B8$7$F$$$k%5%$%H$O$$$/$D$+$"$k!#%5%$(B
        $B%H(Brtfm.mit.edu($B%G%#%l%/%H%j(Bpub/usenet/news.answers/C-faq/$B$H(B
        pub/usenet/comp.lang.c/)$B$d%5%$%H(Bftp.uu.net ($B%G%#%l%/%H%j(B
        usenet/news.answers/C-faq/)$B$O!"$=$N$h$&$J%5%$%H$N$&$A$N(B2$B$D$G$"(B
        $B$k!#(B archie$B%5!<%P$O$=$N$h$&$J%5%$%H$r8+$D$1$k=u$1$K$J$k!#(B
        archie$B$K(B"prog C-faq"$B$HJ9$$$F$_$m!#$=$NB>$N>pJs$O(Bnews.answers
        $B$N(Bmeta-FAQ list$B$+$iF@$i$l$k!#(B 17.12$B$b;2>H$N$3$H!#(B

        $B$3$N%j%9%H$OH/E8$7B3$1$k;qNA$G$"$k!#C1$K:#7n$N6=L#?<$$<ALd$X$N(B
        $B2sEz$N4s$;=8$a$G$O$J$$!#@N$N%j%9%H$O;~BeCY$l$GBg$7$?>pJs$r;}$C(B
        $B$F$$$J$$!#Nc30$O!"$H$-$I$-$"$kBG$A4V0c$($NCf$G!":#2s$N%j%9%H$K(B
        $B4^$^$l$F$$$J$$$b$N$G$"$k!#(B




$BIU(B1.$B;29MJ88%(B

           ________________________________________________
           ANSI     American National Standard for Informa-
                    tion Systems -- Programming Language --
                    C, ANSI X3.159-1989 (Q5.2$B;2>H(B).
           JLB      Jon Louis Bentley, Writing Efficient
                    Programs, Prentice-Hall, 1982, ISBN 0-
                    13-970244-X.
                     ($BK.Lu(B:$B%W%m%0%i%`2~NI3X(B $B6aBe2J3X<R(B
                    ISBN4-7649-0159-5)
           H&S      Samuel P. Harbison and Guy L. Steele,
                    C: A Reference Manual, Second Edition,
                    Prentice-Hall, 1987, ISBN 0-13-109802-
                    0. (3$BHG$,:G6a=PHG$5$l$?(B)
                     ($BK.Lu(B:$B>\:Y(BC$B8@8l(B:H&S$B%j%U%!%l%s%9(B $BF|K\%=(B
                    $B%U%H%P%s%/(B ISBN4-89052-050-3)
           PCS      Mark R. Horton, Portable C Software,
                    Prentice Hall, 1990, ISBN 0-13-868050-
                    7.
                     ($BK.Lu(B:$B%]!<%?%V%k(BC$B%W%m%0%i%_%s%0(B $B%H%C%Q(B
                    $B%s(B)
           EoPS     Brian W. Kernighan and P.J. Plauger,
                    The Elements of Programming Style,
                    Second Edition, McGraw-Hill, 1978, ISBN
                    0-07-034207-5.
                     ($BK.Lu(B:$B%W%m%0%i%`=qK!Bh(B2$BHG(B $B6&N)=PHG(B)
           K&R I    Brian W. Kernighan and Dennis M.
                    Ritchie, The C Programming Language,
                    Prentice Hall, 1978, ISBN 0-13-110163-
                    3.
                     ($BK.Lu(B:$B%W%m%0%i%_%s%08@8l(BC $B6&N)=PHG(B)
           K&R II   Brian W. Kernighan and Dennis M.
                    Ritchie, The C Programming Language,
                    Second Edition, Prentice Hall, 1988,
                    ISBN 0-13- 110362-8, 0-13-110370-9.
                     ($BK.Lu(B:$B%W%m%0%i%_%s%08@8l(BC$BBh(B2$BHG(B $B6&N)=P(B
                    $BHG(B)
           Knuth    Donald E. Knuth, The Art of Computer
                    Programming, (3 vols.), Addison Wesley,
                    1981.
                     ($BK.Lu(B:$B4pK\;;K!(B)
           CT&P     Andrew Koenig, C Traps and Pitfalls,
                    Addison-Wesley, 1989, ISBN 0-201-
                    17928-8.
                     ($BK.Lu(B:C$B$NMn$H$77j(B $B%H%C%Q%s(B)
                    P.J. Plauger, The Standard C Library,
                    Prentice Hall, 1992, ISBN 0-13-131509-
                    9.
                    Harry Rabinowitz and Chaim Schaap,
                    Portable C, Prentice-Hall, 1990, ISBN
                    0-13-685967-4.
                     ($BK.Lu(B:C$B8@8l%]!<%?%S%j%F%#F~Lg(B $B5;=QI>O@(B
           _________$B<R(B)____________________________________


$B$b$C$H9-HO0O$K$o$?$k;29MJ88%$N0lMw$O%$%s%G%#%"%s%R%k%9%?%$%k%,%$%I$N2~(B
$BD{HG$K$G$F$$$k(B(Q14.3$B$r;2>H(B)$B!#(BQ17.31$B$b;2>H$N$3$H!#(B




$B<U<-(B


$BD>@\$K$"$k$$$O4V@\E*$K$3$N(BFAQ$B$K9W8%$7$F$/$l$?0J2<$N3'$5$s$K46<U$9$k!#(B

        Jamshid Afshar, Sudheer Apte, Randall Atkinson, Dan Bernstein,
        Vincent Broman, Stan Brown, Joe Buehler, Gordon Burditt, Burkhard Burow,
        Conor P. Cahill, D'Arcy J.M. Cain, Christopher Calabrese, Ian Cargill,
        Paul Carter, Billy Chambless, Raymond Chen, Jonathan Coxhead, Lee
        Crawford, Steve Dahmer, Andrew Daviel, James Davies, Jutta Degener, Norm
        Diamond, Jeff Dunlop, Ray Dunn, Stephen M. Dunn, Michael J. Eager, Dave
        Eisen, Bjorn Engsig, Chris Flatters, Rod Flores, Alexander Forst, Jeff
        Francis, Dave Gillespie, Samuel Goldstein, Alasdair Grant, Ron
        Guilmette, Doug Gwyn, Tony Hansen, Joe Harrington, Guy Harris, Elliotte
        Rusty Harold, Jos Horsmeier, Blair Houghton, Ke Jin, Kirk Johnson, Larry
        Jones, $BKLLn(B $B6V0l(B, Peter Klausler, Andrew Koenig, Tom Koenig, Ajoy
        Krishnan T, Markus Kuhn, John Lauro, Felix Lee, Mike Lee, Timothy J.
        Lee, Tony Lee, Don Libes, Christopher Lott, Tim Love, Tim McDaniel,
        Stuart MacMartin, John R. MacMillan, Bob Makowski, Evan Manning, Barry
        Margolin, George Matas, Brad Mears, Bill Mitchell, Mark Moraes, Darren
        Morby, Ken Nakata, Landon Curt Noll, David O'Brien, Richard A. O'Keefe,
        Hans Olsson, Philip (lijnzaad@embl-heidelberg.de), Andrew Phillips,
        Christopher Phillips, Francois Pinard, Dan Pop, Kevin D. Quitt, Pat
        Rankin, J. M. Rosenstock, Erkki Ruohtula, $B:dK\(B $BCRI'(B, Rich Salz,
        Chip Salzenberg, Paul Sand, DaviD W. Sanderson, Christopher Sawtell,
        Paul Schlyter, Doug Schmidt, Rene Schmit, Russell Schulz, Patricia
        Shanahan, Peter da Silva, Joshua Simons, Henry Spencer, David Spuler,
        Melanie Summit, Erik Talvola, Clarke Thatcher, Wayne Throop, Chris
        Torek, Andrew Tucker, Goran Uddeborg, Rodrigo Vanegas, Jim Van Zandt,
        Wietse Venema, Ed Vielmetti, Larry Virden, Chris Volpe, Mark Warren,
        Larry Weiss, Freek Wiedijk, Lars Wirzenius, Dave Wolverton, Mitch
        Wright, Conway Yee, Zhuo Zang

$BFC$K(BKarl Heuer$B$H(BMark Brader$B$K!"$h$j$h$$(BFAQ$B$N%j%9%H$r:n$k$H$$$&=*$o$j$N(B
$B$J$$L\E*DI5a$N$?$a$K;d$N9%$_$rJ*$H$b$;$:!"$H$-$K$O;d$N2fK}$r1[$($??e@h(B
$B0FFb$r$7$F$/$l$?$3$H$K46<U$9$k!#(B


                                                Steve Summit
                                                scs@eskimo.com


$B$3$N5-;v$NCx:n8"$O(B1988$B!"(B1990-1994$BG/$KEO$C$F(BSteve Summit$B$K5"B0$9$k!#JT(B
$B<T$NL>A0$H!"$3$NCm0U=q$-$,0];}$5$l$F$$$k8B$j<+M3$K:FG[I[$7$F$h$$!#$3$N(B
$B5-;vFb$K8=$l$k(BC$B$N%3!<%I(B(vstrcat(), error(), etc.)$B$O!"%Q%V%j%C%/%I%a%$(B
$B%s$G!"$$$+$J$k@)8B$b$J$7$K;HMQ$7$F$h$$!#(B

This article is Copyright 1988, 1990-1994 by Steve Summit. It may be
freely redistributed so long as the author's name, and this notice,
are retained. The C code in this article (vstrcat(), error(), etc.) is
public domain and may be used without restriction.

$BF|K\8lHG<U<-(B

$BF|K\8lHG$r=P$9$K$"$?$C$F0J2<$NJ}$K!"MM!9$J7A$G=u$1$F$b$i$$$^$7$?!#46<U$7$F$^$9!#(B

void$B$5$s(B($BB>$N8F$SJ}$NJ}$,$h$1$l$P65$($F2<$5$$(B :-)
$B<R30$NF?L>4uK>$5$s(B
$B2#2OEE5!$N@n2<$5$s!"Ln8}$5$s!"MZL4$5$s!"HS4V$5$s!"BgLn$5$s!"@1Ln$5$s!"7k>k$5$s(B
$BIY;NDL@n:j$NEDJU$5$s(B
SONY$B$N:dK\$5$s(B
($B=gITF1(B)

$B:G8e$K86Cx<T$N(BSteve Summit$B$5$s$K!";d$N:Y$+$$<ALd$K0l!9CzG+$KEz$($F$b$i$C$F$3$H$r46<U$7$^$9!#(B
