%!PS-Adobe-2.0 %%Version: 0.1 %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /show {{//show} 0 get exec} bind def % so later references don't bind /widthshow {{//widthshow} 0 get exec} bind def /stringwidth {{//stringwidth} 0 get exec} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def %%Patch from lp %%EndPatch from lp setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 10 /Times-Roman f (\255) 0 120 w 18 /Times-Roman f (C) 2318 1308 w (Reference Manual) 2484 1308 w 10 /Times-Italic f (Dennis M. Ritchie) 2698 1778 w (Bell Telephone Laboratories) 2485 1915 w (Murray Hill, New Jersey 07974) 2426 2025 w 10 /Courier f (1.) 720 2630 w (Introduction) 960 2630 w 10 /Times-Roman f (C) 820 2762 w (is) 920 2762 w (a) 1021 2762 w (computer) 1099 2762 w (language) 1510 2762 w (based) 1904 2762 w (on) 2165 2762 w (the) 2299 2762 w (earlier) 2455 2762 w (language) 2743 2762 w (B) 3137 2762 w ([1].) 3238 2762 w (The) 3438 2762 w (languages) 3627 2762 w (and) 4060 2762 w (their) 4238 2762 w (compilers) 4455 2762 w (differ) 4883 2762 w (in) 5138 2762 w (two) 5250 2762 w (major) 720 2872 w (ways:) 989 2872 w (C) 1258 2872 w (introduces) 1361 2872 w (the) 1813 2872 w (notion) 1971 2872 w (of) 2263 2872 w (types,) 2382 2872 w (and) 2654 2872 w (defines) 2834 2872 w (appropriate) 3158 2872 w (extra) 3648 2872 w (syntax) 3883 2872 w (and) 4180 2872 w (semantics;) 4360 2872 w (also,) 4818 2872 w (C) 5040 2872 w (on) 5143 2872 w (the) 5278 2872 w 8 /Times-Roman f (PDP) 720 2982 w 10 /Times-Roman f (\25511 is a true compiler, producing machine code where B produced interpretive code.) 868 2982 w (Most) 820 3136 w (of) 1057 3136 w (the) 1171 3136 w (software) 1324 3136 w (for) 1698 3136 w (the) 1845 3136 w 8 /Times-Roman f (UNIX) 1998 3136 w 10 /Times-Roman f (time\255sharing) 2229 3136 w (system) 2765 3136 w ([2]) 3074 3136 w (is) 3221 3136 w (written) 3319 3136 w (in) 3633 3136 w (C,) 3742 3136 w (as) 3865 3136 w (is) 3980 3136 w (the) 4079 3136 w (operating) 4233 3136 w (system) 4642 3136 w (itself.) 4952 3136 w (C) 5234 3136 w (is) 5333 3136 w (also) 720 3246 w (available) 911 3246 w (on) 1301 3246 w (the) 1431 3246 w 8 /Times-Roman f (HIS) 1582 3246 w 10 /Times-Roman f (6070) 1740 3246 w (computer) 1969 3246 w (at) 2375 3246 w (Murray) 2476 3246 w (Hill) 2804 3246 w (and) 2989 3246 w (and) 3162 3246 w (on) 3335 3246 w (the) 3464 3246 w 8 /Times-Roman f (IBM) 3615 3246 w 10 /Times-Roman f (System/370) 3795 3246 w (at) 4297 3246 w (Holmdel) 4398 3246 w ([3].) 4777 3246 w (This) 4972 3246 w (paper) 5179 3246 w (is) 720 3356 w (a) 816 3356 w (manual) 890 3356 w (only) 1214 3356 w (for) 1422 3356 w (the) 1568 3356 w (C) 1720 3356 w (language) 1817 3356 w (itself) 2207 3356 w (as) 2437 3356 w (implemented) 2550 3356 w (on) 3102 3356 w (the) 3232 3356 w 8 /Times-Roman f (PDP) 3384 3356 w 10 /Times-Roman f (\25511.) 3532 3356 w (However,) 3745 3356 w (hints) 4165 3356 w (are) 4390 3356 w (given) 4541 3356 w (occasionally) 4793 3356 w (in) 5322 3356 w (the text of implementation\255dependent features.) 720 3466 w (The) 820 3620 w 8 /Times-Roman f (UNIX) 1007 3620 w 10 /Times-Roman f (Programmer's) 1239 3620 w (Manual) 1842 3620 w ([4]) 2179 3620 w (describes) 2327 3620 w (the) 2730 3620 w (library) 2884 3620 w (routines) 3182 3620 w (available) 3536 3620 w (to) 3928 3620 w (C) 4038 3620 w (programs) 4137 3620 w (under) 4546 3620 w 8 /Times-Roman f (UNIX) 4805 3620 w 10 /Times-Roman f (,) 5005 3620 w (and) 5062 3620 w (also) 5239 3620 w (the) 720 3730 w (procedures) 870 3730 w (for) 1335 3730 w (compiling) 1479 3730 w (programs) 1913 3730 w (under) 2318 3730 w (that) 2572 3730 w (system.) 2749 3730 w (``The) 3104 3730 w 8 /Times-Roman f (GCOS) 3352 3730 w 10 /Times-Roman f (C) 3594 3730 w (Library'') 3688 3730 w (by) 4080 3730 w (Lesk) 4207 3730 w (and) 4428 3730 w (Barres) 4599 3730 w ([5]) 4886 3730 w (describes) 5029 3730 w (routines available under that system as well as compilation procedures.) 720 3840 w (Many) 3611 3840 w (of) 3870 3840 w (these) 3979 3840 w (routines,) 4210 3840 w (particularly) 4583 3840 w (the) 5069 3840 w (ones) 5217 3840 w (having) 720 3950 w (to) 1028 3950 w (do) 1142 3950 w (with) 1278 3950 w (I/O,) 1492 3950 w (are) 1686 3950 w (also) 1843 3950 w (provided) 2040 3950 w (under) 2431 3950 w 8 /Times-Roman f (UNIX) 2694 3950 w 10 /Times-Roman f (.) 2894 3950 w (Finally,) 2980 3950 w (``Programming) 3325 3950 w (in) 3977 3950 w (C) 4090 3950 w 10 /S f (-) 4157 3950 w 10 /Times-Roman f (A) 4247 3950 w (Tutorial,'') 4354 3950 w (by) 4802 3950 w (B.) 4937 3950 w (W.) 5064 3950 w (Ker\255) 5218 3950 w (nighan [6], is as) 720 4060 w (useful) 1384 4060 w (as) 1654 4060 w (promised) 1763 4060 w (by) 2161 4060 w (its) 2287 4060 w (title) 2408 4060 w (and) 2590 4060 w (the) 2760 4060 w (author's) 2908 4060 w (previous) 3261 4060 w (introductions) 3631 4060 w (to) 4185 4060 w (allegedly) 4289 4060 w (impenetrable) 4681 4060 w (sub\255) 5228 4060 w (jects.) 720 4170 w 10 /Courier f (2.) 720 4445 w (Lexical conventions) 960 4445 w 10 /Times-Roman f (There) 820 4577 w (are) 1079 4577 w (six) 1227 4577 w (kinds) 1371 4577 w (of) 1615 4577 w (tokens:) 1726 4577 w (identifiers,) 2043 4577 w (keywords,) 2501 4577 w (constants,) 2942 4577 w (strings,) 3367 4577 w (expression) 3687 4577 w (operators,) 4142 4577 w (and) 4566 4577 w (other) 4738 4577 w (separators.) 4971 4577 w (In) 720 4687 w (general) 832 4687 w (blanks,) 1154 4687 w (tabs,) 1469 4687 w (newlines,) 1684 4687 w (and) 2093 4687 w (comments) 2266 4687 w (as) 2706 4687 w (described) 2818 4687 w (below) 3229 4687 w (are) 3502 4687 w (ignored) 3652 4687 w (except) 3986 4687 w (as) 4275 4687 w (they) 4387 4687 w (serve) 4588 4687 w (to) 4827 4687 w (separate) 4934 4687 w (to\255) 5289 4687 w (kens.) 720 4797 w (At) 988 4797 w (least) 1123 4797 w (one) 1341 4797 w (of) 1520 4797 w (these) 1638 4797 w (characters) 1878 4797 w (is) 2316 4797 w (required) 2418 4797 w (to) 2785 4797 w (separate) 2898 4797 w (otherwise) 3259 4797 w (adjacent) 3682 4797 w (identifiers,) 4050 4797 w (constants,) 4516 4797 w (and) 4949 4797 w (certain) 5129 4797 w (operator\255pairs.) 720 4907 w (If) 820 5061 w (the) 912 5061 w (input) 1060 5061 w (stream) 1292 5061 w (has) 1584 5061 w (been) 1743 5061 w (parsed) 1957 5061 w (into) 2243 5061 w (tokens) 2425 5061 w (up) 2712 5061 w (to) 2839 5061 w (a) 2944 5061 w (given) 3015 5061 w (character,) 3264 5061 w (the) 3680 5061 w (next) 3829 5061 w (token) 4028 5061 w (is) 4277 5061 w (taken) 4371 5061 w (to) 4614 5061 w (include) 4719 5061 w (the) 5040 5061 w (long\255) 5189 5061 w (est string of characters which could possibly constitute a token.) 720 5171 w (2.1) 720 5391 w (Comments) 895 5391 w (The characters) 820 5523 w 10 /Courier f (/) 1460 5523 w 10 /Times-Roman f (*) 1520 5545 w (introduce a comment, which terminates with the characters) 1627 5523 w (*) 4040 5545 w 10 /Courier f (/) 4090 5523 w 10 /Times-Roman f (.) 4150 5523 w (2.2) 720 5743 w (Identifiers \(Names\)) 895 5743 w (An identifier is a sequence of) 820 5875 w (letters) 2018 5875 w (and) 2288 5875 w (digits;) 2458 5875 w (the) 2735 5875 w (first) 2883 5875 w (character) 3070 5875 w (must) 3460 5875 w (be) 3681 5875 w (alphabetic.) 3801 5875 w (The) 4287 5875 w (underscore) 4468 5875 w (``) 4931 5875 w 10 /S1 f (_) 4997 5875 w 10 /Times-Roman f ('') 5047 5875 w (counts) 5139 5875 w (as) 720 5985 w (alphabetic.) 831 5985 w (Upper) 1319 5985 w (and) 1596 5985 w (lower) 1768 5985 w (case) 2023 5985 w (letters) 2222 5985 w (are) 2494 5985 w (considered) 2643 5985 w (different.) 3103 5985 w (No) 3524 5985 w (more) 3674 5985 w (than) 3907 5985 w (the) 4107 5985 w (first) 4257 5985 w (eight) 4445 5985 w (characters) 4672 5985 w (are) 5102 5985 w (sig\255) 5250 5985 w (nificant, and only the first seven for external identifiers.) 720 6095 w (2.3) 720 6315 w (Keywords) 895 6315 w (The following identifiers are reserved for use as keywords, and may not be used otherwise:) 820 6447 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 2) 720 580 w 10 /Courier f (int) 1080 978 w (break) 2520 978 w (char) 1080 1088 w (continue) 2520 1088 w (float) 1080 1198 w (if) 2520 1198 w (double) 1080 1308 w (else) 2520 1308 w (struct) 1080 1418 w (for) 2520 1418 w (auto) 1080 1528 w (do) 2520 1528 w (extern) 1080 1638 w (while) 2520 1638 w (register) 1080 1748 w (switch) 2520 1748 w (static) 1080 1858 w (case) 2520 1858 w (goto) 1080 1968 w (default) 2520 1968 w (return) 1080 2078 w (entry) 2520 2078 w (sizeof) 1080 2188 w 10 /Times-Roman f (The) 720 2375 w 10 /Courier f (entry) 935 2375 w 10 /Times-Roman f (keyword is not currently implemented by any compiler but is reserved for future use.) 1260 2375 w (2.3) 720 2595 w (Constants) 895 2595 w (There are several kinds of constants, as follows:) 820 2727 w (2.3.1) 720 2947 w (Integer constants) 970 2947 w (An) 820 3079 w (integer) 970 3079 w (constant) 1275 3079 w (is) 1636 3079 w (a) 1731 3079 w (sequence) 1803 3079 w (of) 2196 3079 w (digits.) 2307 3079 w (An) 2608 3079 w (integer) 2758 3079 w (is) 3063 3079 w (taken) 3158 3079 w (to) 3403 3079 w (be) 3510 3079 w (octal) 3633 3079 w (if) 3856 3079 w (it) 3946 3079 w (begins) 4031 3079 w (with) 4321 3079 w 10 /Courier f (0) 4528 3079 w 10 /Times-Roman f (,) 4588 3079 w (decimal) 4642 3079 w (otherwise.) 4987 3079 w (The digits) 720 3189 w 10 /Courier f (8) 1148 3189 w 10 /Times-Roman f (and) 1233 3189 w 10 /Courier f (9) 1402 3189 w 10 /Times-Roman f (have octal value 10 and 11 respectively.) 1487 3189 w (2.3.2) 720 3409 w (Character constants) 970 3409 w (A) 820 3541 w (character) 928 3541 w (constant) 1328 3541 w (is) 1697 3541 w (1) 1800 3541 w (or) 1886 3541 w (2) 2005 3541 w (characters) 2091 3541 w (enclosed) 2530 3541 w (in) 2915 3541 w (single) 3029 3541 w (quotes) 3304 3541 w (``) 3602 3541 w 10 /Courier f (\264) 3684 3541 w 10 /Times-Roman f (''.) 3760 3541 w (Within) 3913 3541 w (a) 4228 3541 w (character) 4309 3541 w (constant) 4710 3541 w (a) 5080 3541 w (single) 5161 3541 w (quote) 720 3651 w (must) 978 3651 w (be) 1209 3651 w (preceded) 1339 3651 w (by) 1734 3651 w (a) 1870 3651 w (back\255slash) 1949 3651 w (``\\''.) 2405 3651 w (Certain) 2650 3651 w (non\255graphic) 2979 3651 w (characters,) 3496 3651 w (and) 3959 3651 w (``\\'') 4138 3651 w (itself,) 4333 3651 w (may) 4593 3651 w (be) 4800 3651 w (escaped) 4929 3651 w (ac\255) 5279 3651 w (cording to the following table:) 720 3761 w 8 /Times-Roman f (BS) 1080 3948 w 10 /Times-Roman f (\\b) 1620 3948 w 8 /Times-Roman f (NL) 1080 4058 w 10 /Times-Roman f (\\n) 1620 4058 w 8 /Times-Roman f (CR) 1080 4168 w 10 /Times-Roman f (\\r) 1620 4168 w 8 /Times-Roman f (HT) 1080 4278 w 10 /Times-Roman f (\\t) 1620 4278 w 10 /Times-Italic f (ddd) 1080 4388 w 10 /Times-Roman f (\\) 1620 4388 w 10 /Times-Italic f (ddd) 1648 4388 w 10 /Times-Roman f (\\) 1080 4498 w (\\\\) 1620 4498 w (The) 720 4685 w (escape) 903 4685 w (``\\) 1196 4685 w 10 /Times-Italic f (ddd) 1290 4685 w 10 /Times-Roman f ('') 1440 4685 w (consists) 1534 4685 w (of) 1879 4685 w (the) 1990 4685 w (backslash) 2140 4685 w (followed) 2556 4685 w (by) 2939 4685 w (1,) 3067 4685 w (2,) 3171 4685 w (or) 3275 4685 w (3) 3387 4685 w (octal) 3466 4685 w (digits) 3689 4685 w (which) 3941 4685 w (are) 4214 4685 w (taken) 4364 4685 w (to) 4609 4685 w (specify) 4716 4685 w (the) 5033 4685 w (value) 5184 4685 w (of) 720 4795 w (the) 832 4795 w (desired) 983 4795 w (character.) 1300 4795 w (A) 1743 4795 w (special) 1844 4795 w (case) 2150 4795 w (of) 2350 4795 w (this) 2462 4795 w (construction) 2636 4795 w (is) 3159 4795 w (``\\0'') 3255 4795 w (\(not) 3494 4795 w (followed) 3684 4795 w (by) 4068 4795 w (a) 4197 4795 w (digit\)) 4270 4795 w (which) 4516 4795 w (indicates) 4789 4795 w (a) 5172 4795 w (null) 5244 4795 w (character.) 720 4905 w (Character) 820 5059 w (constants) 1237 5059 w (behave) 1639 5059 w (exactly) 1951 5059 w (like) 2269 5059 w (integers) 2449 5059 w (\(not,) 2795 5059 w (in) 3011 5059 w (particular,) 3119 5059 w (like) 3556 5059 w (objects) 3736 5059 w (of) 4049 5059 w (character) 4162 5059 w (type\).) 4556 5059 w (In) 4842 5059 w (conformity) 4956 5059 w (with) 720 5169 w (the) 930 5169 w (addressing) 1084 5169 w (structure) 1543 5169 w (of) 1924 5169 w (the) 2038 5169 w 8 /Times-Roman f (PDP) 2191 5169 w 10 /Times-Roman f (\25511,) 2339 5169 w (a) 2528 5169 w (character) 2603 5169 w (constant) 2998 5169 w (of) 3362 5169 w (length) 3476 5169 w (1) 3757 5169 w (has) 3838 5169 w (the) 4002 5169 w (code) 4155 5169 w (for) 4374 5169 w (the) 4521 5169 w (given) 4674 5169 w (character) 4927 5169 w (in) 5322 5169 w (the low\255order byte) 720 5279 w (and) 1483 5279 w (0) 1653 5279 w (in) 1729 5279 w (the) 1833 5279 w (high\255order) 1981 5279 w (byte;) 2428 5279 w (a) 2654 5279 w (character) 2724 5279 w (constant) 3114 5279 w (of) 3473 5279 w (length) 3582 5279 w (2) 3858 5279 w (has) 3934 5279 w (the) 4093 5279 w (code) 4241 5279 w (for) 4455 5279 w (the) 4597 5279 w (first) 4745 5279 w (character) 4932 5279 w (in) 5322 5279 w (the) 720 5389 w (low) 872 5389 w (byte) 1052 5389 w (and) 1254 5389 w (that) 1428 5389 w (for) 1608 5389 w (the) 1754 5389 w (second) 1906 5389 w (character) 2212 5389 w (in) 2605 5389 w (the) 2712 5389 w (high\255order) 2863 5389 w (byte.) 3313 5389 w (Character) 3564 5389 w (constants) 3980 5389 w (with) 4381 5389 w (more) 4588 5389 w (than) 4822 5389 w (one) 5023 5389 w (char\255) 5196 5389 w (acter are inherently machine\255dependent and should be avoided.) 720 5499 w (2.3.3) 720 5719 w (Floating constants) 970 5719 w (A) 820 5851 w (floating) 918 5851 w (constant) 1255 5851 w (consists) 1614 5851 w (of) 1957 5851 w (an) 2066 5851 w (integer) 2186 5851 w (part,) 2489 5851 w (a) 2695 5851 w (decimal) 2765 5851 w (point,) 3107 5851 w (a) 3364 5851 w (fraction) 3434 5851 w (part,) 3770 5851 w (an) 3976 5851 w 10 /Courier f (e) 4096 5851 w 10 /Times-Roman f (,) 4156 5851 w (and) 4207 5851 w (an) 4377 5851 w (optionally) 4497 5851 w (signed) 4929 5851 w (inte\255) 5217 5851 w (ger) 720 5961 w (exponent.) 876 5961 w (The) 1321 5961 w (integer) 1505 5961 w (and) 1810 5961 w (fraction) 1982 5961 w (parts) 2320 5961 w (both) 2542 5961 w (consist) 2748 5961 w (of) 3054 5961 w (a) 3165 5961 w (sequence) 3237 5961 w (of) 3630 5961 w (digits.) 3741 5961 w (Either) 4042 5961 w (the) 4314 5961 w (integer) 4464 5961 w (part) 4769 5961 w (or) 4952 5961 w (the) 5063 5961 w (frac\255) 5213 5961 w (tion) 720 6071 w (part) 906 6071 w (\(not) 1091 6071 w (both\)) 1282 6071 w (may) 1524 6071 w (be) 1727 6071 w (missing;) 1852 6071 w (either) 2223 6071 w (the) 2481 6071 w (decimal) 2634 6071 w (point) 2981 6071 w (or) 3218 6071 w (the) 3332 6071 w 10 /Courier f (e) 3485 6071 w 10 /Times-Roman f (and) 3576 6071 w (the) 3751 6071 w (exponent) 3904 6071 w (\(not) 4301 6071 w (both\)) 4493 6071 w (may) 4735 6071 w (be) 4938 6071 w (missing.) 5063 6071 w (Every floating constant is taken to be double\255precision.) 720 6181 w (2.4) 720 6401 w (Strings) 895 6401 w (A) 820 6533 w (string) 920 6533 w (is) 1176 6533 w (a) 1271 6533 w (sequence) 1343 6533 w (of) 1736 6533 w (characters) 1847 6533 w (surrounded) 2278 6533 w (by) 2755 6533 w (double) 2883 6533 w (quotes) 3183 6533 w (``) 3472 6533 w 10 /Courier f (") 3554 6533 w 10 /Times-Roman f (''.) 3630 6533 w (A) 3774 6533 w (string) 3874 6533 w (has) 4130 6533 w (the) 4292 6533 w (type) 4443 6533 w (array\255of\255characters) 4644 6533 w (\(see) 720 6643 w (below\)) 915 6643 w (and) 1227 6643 w (refers) 1406 6643 w (to) 1667 6643 w (an) 1780 6643 w (area) 1909 6643 w (of) 2109 6643 w (storage) 2227 6643 w (initialized) 2550 6643 w (with) 2985 6643 w (the) 3198 6643 w (given) 3355 6643 w (characters.) 3612 6643 w (The) 4099 6643 w (compiler) 4288 6643 w (places) 4677 6643 w (a) 4960 6643 w (null) 5038 6643 w (byte) 5228 6643 w (\() 720 6753 w (\\0) 769 6753 w (\)) 863 6753 w (at) 922 6753 w (the) 1020 6753 w (end) 1168 6753 w (of) 1338 6753 w (each) 1447 6753 w (string) 1655 6753 w (so) 1909 6753 w (that) 2024 6753 w (programs) 2200 6753 w (which) 2603 6753 w (scan) 2873 6753 w (the) 3076 6753 w (string) 3224 6753 w (can) 3479 6753 w (find) 3644 6753 w (its) 3832 6753 w (end.) 3954 6753 w (In) 4175 6753 w (a) 4285 6753 w (string,) 4356 6753 w (the) 4636 6753 w (character) 4785 6753 w (``) 5176 6753 w 10 /Courier f (") 5258 6753 w 10 /Times-Roman f ('') 5334 6753 w (must be preceded by a ``\\'') 720 6863 w (; in addition, the same escapes as described for character constants may be used.) 1813 6863 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 3) 4391 580 w 10 /Courier f (3.) 720 978 w (Syntax notation) 960 978 w 10 /Times-Roman f (In) 820 1110 w (the) 933 1110 w (syntax) 1085 1110 w (notation) 1376 1110 w (used) 1734 1110 w (in) 1947 1110 w (this) 2055 1110 w (manual,) 2230 1110 w (syntactic) 2579 1110 w (categories) 2964 1110 w (are) 3398 1110 w (indicated) 3549 1110 w (by) 3946 1110 w 10 /Times-Italic f (italic) 4077 1110 w 10 /Times-Roman f (type,) 4314 1110 w (and) 4542 1110 w (literal) 4717 1110 w (words) 4981 1110 w (and) 5256 1110 w (characters) 720 1220 w (in) 1149 1220 w 10 /Courier f (gothic.) 1253 1220 w 10 /Times-Roman f (Alternatives) 1724 1220 w (are) 2238 1220 w (listed) 2385 1220 w (on) 2628 1220 w (separate) 2754 1220 w (lines.) 3106 1220 w (An optional terminal or non\255terminal symbol is in\255) 3370 1220 w (dicated by the subscript ``opt,'' so that) 720 1330 w 10 /Times-Italic f ({ expression) 1080 1517 w 6 /Times-Italic f (opt) 1572 1547 w 10 /Times-Italic f (}) 1674 1517 w 10 /Times-Roman f (would indicate an optional expression in braces.) 720 1704 w 10 /Courier f (4.) 720 1979 w (What's in a Name?) 960 1979 w 10 /Times-Roman f (C) 820 2111 w (bases) 916 2111 w (the) 1161 2111 w (interpretation) 1313 2111 w (of) 1881 2111 w (an) 1994 2111 w (identifier) 2118 2111 w (upon) 2514 2111 w (two) 2744 2111 w (attributes) 2924 2111 w (of) 3326 2111 w (the) 3439 2111 w (identifier:) 3591 2111 w (its) 4015 2111 w 10 /Times-Italic f (storage) 4140 2111 w (class) 4470 2111 w 10 /Times-Roman f (and) 4700 2111 w (its) 4874 2111 w 10 /Times-Italic f (type.) 4999 2111 w 10 /Times-Roman f (The) 5245 2111 w (storage) 720 2221 w (class) 1034 2221 w (determines) 1254 2221 w (the) 1718 2221 w (location) 1866 2221 w (and) 2214 2221 w (lifetime) 2384 2221 w (of) 2721 2221 w (the) 2830 2221 w (storage) 2978 2221 w (associated) 3292 2221 w (with) 3728 2221 w (an) 3932 2221 w (identifier; the type determines the) 4052 2221 w (meaning of the values found in the identifier's storage.) 720 2331 w (There) 820 2485 w (are) 1078 2485 w (four) 1225 2485 w (declarable) 1417 2485 w (storage) 1852 2485 w (classes:) 2166 2485 w (automatic,) 2497 2485 w (static,) 2942 2485 w (external,) 3204 2485 w (and) 3576 2485 w (register.) 3746 2485 w (Automatic) 4121 2485 w (variables) 4569 2485 w (are) 4955 2485 w (local) 5102 2485 w (to) 5322 2485 w (each) 720 2595 w (invocation) 928 2595 w (of) 1376 2595 w (a) 1485 2595 w (function,) 1555 2595 w (and) 1939 2595 w (are) 2109 2595 w (discarded) 2256 2595 w (on) 2664 2595 w (return;) 2790 2595 w (static) 3082 2595 w (variables) 3319 2595 w (are) 3705 2595 w (local) 3852 2595 w (to) 4072 2595 w (a) 4176 2595 w (function,) 4246 2595 w (but) 4630 2595 w (retain) 4784 2595 w (their val\255) 5037 2595 w (ues) 720 2705 w (independently) 883 2705 w (of) 1479 2705 w (invocations) 1592 2705 w (of) 2083 2705 w (the) 2196 2705 w (function;) 2348 2705 w (external) 2739 2705 w (variables) 3090 2705 w (are) 3480 2705 w (independent) 3631 2705 w (of) 4149 2705 w (any) 4262 2705 w (function.) 4436 2705 w (Register) 4849 2705 w (vari\255) 5212 2705 w (ables) 720 2815 w (are) 954 2815 w (stored) 1104 2815 w (in) 1377 2815 w (the) 1484 2815 w (fast) 1635 2815 w (registers) 1808 2815 w (of) 2175 2815 w (the) 2287 2815 w (machine;) 2438 2815 w (like) 2833 2815 w (automatic) 3012 2815 w (variables) 3435 2815 w (they) 3824 2815 w (are) 4025 2815 w (local) 4175 2815 w (to) 4398 2815 w (each) 4505 2815 w (function) 4716 2815 w (and) 5078 2815 w (dis\255) 5250 2815 w (appear on return.) 720 2925 w (C) 820 3079 w (supports) 926 3079 w (four) 1304 3079 w (fundamental) 1509 3079 w (types) 2047 3079 w (of) 2297 3079 w (objects:) 2419 3079 w (characters,) 2769 3079 w (integers,) 3237 3079 w (single\255,) 3618 3079 w (and) 3955 3079 w (double\255precision) 4139 3079 w (floating\255point) 4850 3079 w (numbers.) 720 3189 w (Characters) 1080 3376 w (\(declared,) 1540 3376 w (and) 1969 3376 w (hereinafter) 2147 3376 w (called,) 2613 3376 w 10 /Courier f (char) 2911 3376 w 10 /Times-Roman f (\)) 3151 3376 w (are) 3219 3376 w (chosen) 3375 3376 w (from) 3687 3376 w (the) 3916 3376 w 8 /Times-Roman f (ASCII) 4073 3376 w 10 /Times-Roman f (set;) 4317 3376 w (they) 4491 3376 w (occupy) 4698 3376 w (the) 5021 3376 w (right\255) 5178 3376 w (most) 1080 3486 w (seven) 1313 3486 w (bits) 1578 3486 w (of) 1761 3486 w (an) 1882 3486 w (8\255bit) 2014 3486 w (byte.) 2241 3486 w (It) 2501 3486 w (is) 2600 3486 w (also) 2705 3486 w (possible) 2904 3486 w (to) 3270 3486 w (interpret) 3386 3486 w 10 /Courier f (char) 3762 3486 w 10 /Times-Roman f (s) 4002 3486 w (as) 4078 3486 w (signed,) 4198 3486 w (2's) 4521 3486 w (complement) 4680 3486 w (8\255bit) 5211 3486 w (numbers.) 1080 3596 w (Integers \() 1080 3750 w 10 /Courier f (int) 1459 3750 w 10 /Times-Roman f (\) are represented in 16\255bit 2's complement notation.) 1639 3750 w (Single) 1080 3904 w (precision) 1368 3904 w (floating) 1766 3904 w (point) 2109 3904 w (\() 2347 3904 w 10 /Courier f (float) 2380 3904 w 10 /Times-Roman f (\)) 2680 3904 w (quantities) 2745 3904 w (have) 3166 3904 w (magnitude) 3386 3904 w (in) 3840 3904 w (the) 3950 3904 w (range) 4104 3904 w (approximately) 4357 3904 w (10) 4966 3904 w 7 /Times-Roman f (\26138) 5066 3854 w 10 /Times-Roman f (or) 5207 3904 w (0;) 5322 3904 w (their precision is 24 bits or about seven decimal digits.) 1080 4014 w (Double\255precision) 1080 4168 w (floating\255point) 1799 4168 w (\() 2375 4168 w 10 /Courier f (double) 2408 4168 w 10 /Times-Roman f (\)) 2768 4168 w (quantities) 2827 4168 w (have) 3242 4168 w (the) 3456 4168 w (same) 3604 4168 w (range) 3835 4168 w (as) 4082 4168 w 10 /Courier f (float) 4191 4168 w 10 /Times-Roman f (s) 4491 4168 w (and) 4556 4168 w (a) 4726 4168 w (precision) 4797 4168 w (of) 5190 4168 w (56) 5300 4168 w (bits or about 17 decimal digits.) 1080 4278 w (Besides the four fundamental types there is a conceptually infinite) 820 4509 w (class) 3489 4509 w (of) 3709 4509 w (derived) 3818 4509 w (types) 4143 4509 w (constructed) 4380 4509 w (from) 4866 4509 w (the) 5086 4509 w (fun\255) 5234 4509 w (damental types in the following ways:) 720 4619 w 10 /Times-Italic f (arrays) 1080 4806 w 10 /Times-Roman f (of objects of most types;) 1366 4806 w 10 /Times-Italic f (functions) 1080 4960 w 10 /Times-Roman f (which return objects of a given type;) 1472 4960 w 10 /Times-Italic f (pointers) 1080 5114 w 10 /Times-Roman f (to objects of a given type;) 1433 5114 w 10 /Times-Italic f (structures) 1080 5268 w 10 /Times-Roman f (containing objects of various types.) 1505 5268 w (In general these methods of constructing objects can be applied recursively.) 720 5455 w 10 /Courier f (5.) 720 5730 w (Objects and lvalues) 960 5730 w 10 /Times-Roman f (An) 820 5862 w (object) 972 5862 w (is) 1246 5862 w (a) 1343 5862 w (manipulatable) 1417 5862 w (region) 2013 5862 w (of) 2298 5862 w (storage;) 2411 5862 w (an) 2757 5862 w (lvalue) 2881 5862 w (is) 3155 5862 w (an) 3252 5862 w (expression) 3376 5862 w (referring) 3834 5862 w (to) 4213 5862 w (an) 4322 5862 w (object.) 4447 5862 w (An) 4772 5862 w (obvious) 4925 5862 w (ex\255) 5273 5862 w (ample) 720 5972 w (of) 997 5972 w (an) 1113 5972 w (lvalue) 1240 5972 w (expression) 1516 5972 w (is) 1975 5972 w (an) 2074 5972 w (identifier.) 2200 5972 w (There) 2648 5972 w (are) 2912 5972 w (operators) 3065 5972 w (which) 3468 5972 w (yield) 3744 5972 w (lvalues:) 3976 5972 w (for) 4319 5972 w (example,) 4467 5972 w (if) 4862 5972 w (E) 4955 5972 w (is) 5048 5972 w (an) 5147 5972 w (ex\255) 5273 5972 w (pression) 720 6082 w (of) 1096 6082 w (pointer) 1222 6082 w (type,) 1548 6082 w (then) 1788 6082 w (*) 2003 6104 w (E) 2053 6082 w (is) 2157 6082 w (an) 2267 6082 w (lvalue) 2404 6082 w (expression) 2692 6082 w (referring) 3163 6082 w (to) 3555 6082 w (the) 3677 6082 w (object) 3843 6082 w (to) 4131 6082 w (which) 4253 6082 w (E) 4541 6082 w (points.) 4646 6082 w (The) 4985 6082 w (name) 5184 6082 w (``lvalue'') 720 6192 w (comes) 1124 6192 w (from) 1407 6192 w (the) 1629 6192 w (assignment) 1779 6192 w (expression) 2257 6192 w (``E1 = E2'') 2712 6192 w (in) 3200 6192 w (which) 3306 6192 w (the) 3577 6192 w (left) 3726 6192 w (operand) 3886 6192 w (E1) 4234 6192 w (must) 4372 6192 w (be) 4594 6192 w (an) 4715 6192 w (lvalue) 4836 6192 w (expres\255) 5107 6192 w (sion.) 720 6302 w (The) 970 6302 w (discussion) 1158 6302 w (of) 1608 6302 w (each) 1724 6302 w (operator) 1939 6302 w (below) 2304 6302 w (indicates) 2581 6302 w (whether) 2969 6302 w (it) 3323 6302 w (expects) 3412 6302 w (lvalue) 3744 6302 w (operands) 4021 6302 w (and) 4414 6302 w (whether) 4591 6302 w (it) 4945 6302 w (yields) 5034 6302 w (an) 5306 6302 w (lvalue.) 720 6412 w 10 /Courier f (6.) 720 6687 w (Conversions) 960 6687 w 10 /Times-Roman f (A) 820 6819 w (number) 922 6819 w (of) 1257 6819 w (operators) 1370 6819 w (may,) 1771 6819 w (depending) 1998 6819 w (on) 2444 6819 w (their) 2575 6819 w (operands,) 2789 6819 w (cause) 3205 6819 w (conversion) 3457 6819 w (of) 3926 6819 w (the) 4040 6819 w (value) 4193 6819 w (of) 4440 6819 w (an) 4554 6819 w (operand) 4679 6819 w (from) 5031 6819 w (one) 5256 6819 w (type to another.) 720 6929 w (This section explains the result to be expected from such conversions.) 1394 6929 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 4) 720 580 w 10 /Times-Roman f (6.1) 720 978 w (Characters and integers) 895 978 w (A) 820 1110 w 10 /Courier f (char) 920 1110 w 10 /Times-Roman f (object) 1188 1110 w (may) 1461 1110 w (be) 1662 1110 w (used) 1785 1110 w (anywhere) 1997 1110 w (an) 2413 1110 w 10 /Courier f (int) 2536 1110 w 10 /Times-Roman f (may) 2745 1110 w (be.) 2946 1110 w (In) 3119 1110 w (all) 3231 1110 w (cases) 3360 1110 w (the) 3599 1110 w 10 /Courier f (char) 3785 1110 w 10 /Times-Roman f (is) 4054 1110 w (converted) 4150 1110 w (to) 4572 1110 w (an) 4679 1110 w 10 /Courier f (int) 4802 1110 w 10 /Times-Roman f (by) 5011 1110 w (propa\255) 5140 1110 w (gating) 720 1220 w (its) 999 1220 w (sign) 1123 1220 w (through) 1319 1220 w (the) 1659 1220 w (upper) 1810 1220 w (8) 2066 1220 w (bits) 2145 1220 w (of) 2318 1220 w (the) 2429 1220 w (resultant) 2579 1220 w (integer.) 2951 1220 w (This) 3306 1220 w (is) 3512 1220 w (consistent) 3607 1220 w (with) 4035 1220 w (the) 4241 1220 w (two's) 4391 1220 w (complement) 4641 1220 w (repre\255) 5163 1220 w (sentation) 720 1330 w (used) 1114 1330 w (for) 1330 1330 w (both) 1479 1330 w (characters) 1690 1330 w (and) 2126 1330 w (integers.) 2303 1330 w (\(However,) 2702 1330 w (the) 3158 1330 w (sign\255propagation) 3313 1330 w (feature) 4023 1330 w (disappears) 4333 1330 w (in) 4788 1330 w (other) 4900 1330 w (imple\255) 5139 1330 w (mentations.\)) 720 1440 w (6.2) 720 1660 w (Float and double) 895 1660 w (All) 820 1792 w (floating) 980 1792 w (arithmetic) 1323 1792 w (in) 1760 1792 w (C) 1870 1792 w (is) 1969 1792 w (carried) 2068 1792 w (out) 2376 1792 w (in) 2536 1792 w (double\255precision;) 2647 1792 w (whenever) 3379 1792 w (a) 3799 1792 w 10 /Courier f (float) 3876 1792 w 10 /Times-Roman f (appears) 4209 1792 w (in) 4546 1792 w (an) 4657 1792 w (expression) 4784 1792 w (it) 5244 1792 w (is) 5333 1792 w (lengthened) 720 1902 w (to) 1184 1902 w 10 /Courier f (double) 1288 1902 w 10 /Times-Roman f (by) 1674 1902 w (zero\255padding) 1800 1902 w (its) 2352 1902 w (fraction.) 2473 1902 w (When) 2859 1902 w (a) 3123 1902 w 10 /Courier f (double) 3193 1902 w 10 /Times-Roman f (must) 3579 1902 w (be) 3800 1902 w (converted) 3920 1902 w (to) 4339 1902 w 10 /Courier f (float) 4443 1902 w 10 /Times-Roman f (,) 4743 1902 w (for) 4794 1902 w (example) 4936 1902 w (by) 5300 1902 w (an assignment, the) 720 2012 w 10 /Courier f (double) 1486 2012 w 10 /Times-Roman f (is rounded before truncation to) 1871 2012 w 10 /Courier f (float) 3127 2012 w 10 /Times-Roman f (length.) 3452 2012 w (6.3) 720 2232 w (Float and double; integer and character) 895 2232 w (All) 820 2364 w 10 /Courier f (int) 992 2364 w 10 /Times-Roman f (s) 1172 2364 w (and) 1255 2364 w 10 /Courier f (char) 1443 2364 w 10 /Times-Roman f (s) 1683 2364 w (may) 1766 2364 w (be) 1982 2364 w (converted) 2120 2364 w (without) 2557 2364 w (loss) 2907 2364 w (of) 3107 2364 w (significance) 3234 2364 w (to) 3760 2364 w 10 /Courier f (float) 3883 2364 w 10 /Times-Roman f (or) 4228 2364 w 10 /Courier f (double) 4356 2364 w 10 /Times-Roman f (.) 4716 2364 w (Conversion) 4811 2364 w (of) 5317 2364 w 10 /Courier f (float) 720 2474 w 10 /Times-Roman f (or) 1047 2474 w 10 /Courier f (double) 1157 2474 w 10 /Times-Roman f (to) 1544 2474 w 10 /Courier f (int) 1649 2474 w 10 /Times-Roman f (or) 1856 2474 w 10 /Courier f (char) 1966 2474 w 10 /Times-Roman f (takes) 2233 2474 w (place) 2465 2474 w (with) 2701 2474 w (truncation) 2905 2474 w (towards) 3336 2474 w (0.) 3678 2474 w (Erroneous) 3804 2474 w (results) 4240 2474 w (can) 4527 2474 w (be) 4691 2474 w (expected) 4811 2474 w (if) 5191 2474 w (the) 5278 2474 w (magnitude of the result exceeds 32,767 \(for) 720 2584 w 10 /Courier f (int) 2483 2584 w 10 /Times-Roman f (\) or 127 \(for) 2663 2584 w 10 /Courier f (char) 3178 2584 w 10 /Times-Roman f (\).) 3418 2584 w (6.4) 720 2804 w (Pointers and integers) 895 2804 w (Integers) 820 2936 w (and) 1169 2936 w (pointers) 1341 2936 w (may) 1691 2936 w (be) 1891 2936 w (added) 2013 2936 w (and) 2279 2936 w (compared;) 2451 2936 w (in) 2900 2936 w (such) 3006 2936 w (a) 3217 2936 w (case) 3289 2936 w (the) 3488 2936 w 10 /Courier f (int) 3638 2936 w 10 /Times-Roman f (is) 3846 2936 w (converted) 3941 2936 w (as) 4362 2936 w (specified) 4473 2936 w (in) 4861 2936 w (the) 4967 2936 w (discus\255) 5117 2936 w (sion of the addition operator.) 720 3046 w (Two) 820 3200 w (pointers) 1036 3200 w (to) 1391 3200 w (objects) 1502 3200 w (of) 1818 3200 w (the) 1934 3200 w (same) 2089 3200 w (type) 2327 3200 w (may) 2532 3200 w (be) 2737 3200 w (subtracted;) 2864 3200 w (in) 3335 3200 w (this) 3446 3200 w (case) 3624 3200 w (the) 3828 3200 w (result) 3983 3200 w (is) 4238 3200 w (converted) 4339 3200 w (to) 4766 3200 w (an) 4878 3200 w (integer) 5006 3200 w (as) 5317 3200 w (specified in the discussion of the subtraction operator.) 720 3310 w 10 /Courier f (7.) 720 3585 w (Expressions) 960 3585 w 10 /Times-Roman f (The) 820 3717 w (precedence) 1005 3717 w (of) 1482 3717 w (expression) 1596 3717 w (operators) 2054 3717 w (is) 2456 3717 w (the) 2554 3717 w (same) 2707 3717 w (as) 2943 3717 w (the) 3057 3717 w (order) 3210 3717 w (of) 3451 3717 w (the) 3565 3717 w (major) 3718 3717 w (subsections) 3982 3717 w (of) 4474 3717 w (this) 4588 3717 w (section) 4764 3717 w (\(highest) 5078 3717 w (precedence) 720 3827 w (first\).) 1208 3827 w (Thus) 1493 3827 w (the) 1734 3827 w (expressions) 1897 3827 w (referred) 2404 3827 w (to) 2758 3827 w (as) 2876 3827 w (the) 2999 3827 w (operands) 3161 3827 w (of) 3561 3827 w 10 /Courier f (+) 3684 3827 w 10 /Times-Roman f (\(\2477.4\)) 3784 3827 w (are) 4065 3827 w (those) 4226 3827 w (expressions) 4477 3827 w (defined) 4983 3827 w (in) 5322 3827 w (\247\2477.1) 720 3937 w 10 /S f (_) 945 3937 w 10 /Times-Roman f (7.3.) 995 3937 w (Within) 1197 3937 w (each) 1502 3937 w (subsection,) 1711 3937 w (the) 2185 3937 w (operators) 2334 3937 w (have) 2733 3937 w (the) 2949 3937 w (same) 3099 3937 w (precedence.) 3332 3937 w (Left\255) 3857 3937 w (or) 4084 3937 w (right\255associativity) 4195 3937 w (is) 4945 3937 w (specified) 5040 3937 w (in) 720 4047 w (each) 826 4047 w (subsection) 1036 4047 w (for) 1486 4047 w (the) 1630 4047 w (operators) 1780 4047 w (discussed) 2179 4047 w (therein.) 2590 4047 w (The) 2945 4047 w (precedence) 3128 4047 w (and) 3603 4047 w (associativity) 3775 4047 w (of) 4303 4047 w (all) 4414 4047 w (the) 4542 4047 w (expression) 4692 4047 w (opera\255) 5146 4047 w (tors is summarized in an appendix.) 720 4157 w (Otherwise) 820 4311 w (the) 1262 4311 w (order) 1416 4311 w (of) 1658 4311 w (evaluation) 1773 4311 w (of) 2221 4311 w (expressions) 2337 4311 w (is) 2836 4311 w (undefined.) 2936 4311 w (In) 3418 4311 w (particular) 3534 4311 w (the) 3949 4311 w (compiler) 4104 4311 w (considers) 4492 4311 w (itself) 4902 4311 w (free) 5135 4311 w (to) 5322 4311 w (compute subexpressions in the order it believes most efficient, even if the subexpressions involve side effects.) 720 4421 w (7.1) 720 4641 w (Primary expressions) 895 4641 w (Primary expressions involving) 820 4773 w 10 /Courier f (.) 2067 4773 w 10 /Times-Roman f (,) 2143 4773 w 10 /S f (-) 2193 4773 w 10 /Courier f (>) 2248 4773 w 10 /Times-Roman f (, subscripting, and function calls group left to right.) 2308 4773 w (7.1.1) 720 4993 w 10 /Times-Italic f (identifier) 970 4993 w 10 /Times-Roman f (An) 820 5125 w (identifier) 969 5125 w (is) 1362 5125 w (a) 1456 5125 w (primary) 1527 5125 w (expression,) 1870 5125 w (provided) 2349 5125 w (it) 2731 5125 w (has) 2814 5125 w (been) 2974 5125 w (suitably) 3189 5125 w (declared) 3533 5125 w (as) 3897 5125 w (discussed) 4007 5125 w (below.) 4417 5125 w (Its) 4739 5125 w (type) 4867 5125 w (is) 5067 5125 w (speci\255) 5162 5125 w (fied) 720 5235 w (by) 915 5235 w (its) 1055 5235 w (declaration.) 1190 5235 w (However,) 1723 5235 w (if) 2153 5235 w (the) 2254 5235 w (type) 2416 5235 w (of) 2628 5235 w (the) 2751 5235 w (identifier) 2912 5235 w (is) 3317 5235 w (``array) 3423 5235 w (of) 3732 5235 w (.) 3854 5235 w (.) 3895 5235 w (.'',) 3936 5235 w (then) 4091 5235 w (the) 4302 5235 w (value) 4463 5235 w (of) 4718 5235 w (the) 4840 5235 w (identifier\255) 5001 5235 w (expression) 720 5345 w (is) 1176 5345 w (a) 1272 5345 w (pointer) 1345 5345 w (to) 1657 5345 w (the) 1764 5345 w (first) 1915 5345 w (object) 2105 5345 w (in) 2378 5345 w (the) 2485 5345 w (array,) 2636 5345 w (and) 2895 5345 w (the) 3069 5345 w (type) 3221 5345 w (of) 3423 5345 w (the) 3536 5345 w (expression) 3688 5345 w (is) 4145 5345 w (``pointer) 4242 5345 w (to) 4621 5345 w (.) 4729 5345 w (.) 4770 5345 w (.''.) 4811 5345 w (Moreover,) 4982 5345 w (an array identifier is not an lvalue expression.) 720 5455 w (Likewise,) 820 5609 w (an) 1242 5609 w (identifier) 1367 5609 w (which) 1764 5609 w (is) 2040 5609 w (declared) 2139 5609 w (``function) 2508 5609 w (returning) 2939 5609 w (.) 3337 5609 w (.) 3378 5609 w (.'',) 3419 5609 w (when) 3567 5609 w (used) 3815 5609 w (except) 4030 5609 w (in) 4322 5609 w (the) 4432 5609 w (function\255name) 4586 5609 w (posi\255) 5200 5609 w (tion of a call, is converted to ``pointer to function returning .) 720 5719 w (.) 3152 5719 w (.''.) 3193 5719 w (7.1.2) 720 5939 w 10 /Times-Italic f (constant) 970 5939 w 10 /Times-Roman f (A) 820 6071 w (decimal,) 924 6071 w (octal,) 1297 6071 w (character,) 1548 6071 w (or) 1969 6071 w (floating) 2084 6071 w (constant) 2427 6071 w (is) 2792 6071 w (a) 2891 6071 w (primary) 2967 6071 w (expression.) 3315 6071 w (Its) 3824 6071 w (type) 3956 6071 w (is) 4160 6071 w 10 /Courier f (int) 4260 6071 w 10 /Times-Roman f (in) 4473 6071 w (the) 4584 6071 w (first) 4739 6071 w (three) 4933 6071 w (cases,) 5165 6071 w 10 /Courier f (double) 720 6181 w 10 /Times-Roman f (in the last.) 1105 6181 w (7.1.3) 720 6401 w 10 /Times-Italic f (string) 970 6401 w 10 /Times-Roman f (A) 820 6533 w (string) 919 6533 w (is) 1174 6533 w (a) 1268 6533 w (primary) 1339 6533 w (expression.) 1682 6533 w (Its) 2186 6533 w (type) 2313 6533 w (is) 2512 6533 w (originally) 2606 6533 w (``array) 3023 6533 w (of) 3321 6533 w 10 /Courier f (char) 3432 6533 w 10 /Times-Roman f ('';) 3672 6533 w (but) 3794 6533 w (following) 3950 6533 w (the) 4367 6533 w (same) 4517 6533 w (rule) 4750 6533 w (as) 4933 6533 w (in) 5044 6533 w (\2477.1.1) 5150 6533 w (for identifiers, this is modified to ``pointer to) 720 6643 w 10 /Courier f (char) 2544 6643 w 10 /Times-Roman f ('' and the result is a pointer to the first character in the string.) 2784 6643 w (7.1.4) 720 6863 w 10 /Courier f (\() 970 6863 w 10 /Times-Italic f (expression) 1055 6863 w 10 /Courier f (\)) 1507 6863 w 10 /Times-Roman f (A) 820 6995 w (parenthesized) 922 6995 w (expression) 1500 6995 w (is) 1957 6995 w (a) 2054 6995 w (primary) 2128 6995 w (expression) 2474 6995 w (whose) 2931 6995 w (type) 3216 6995 w (and) 3418 6995 w (value) 3592 6995 w (are) 3838 6995 w (identical) 3989 6995 w (to) 4363 6995 w (those) 4471 6995 w (of) 4712 6995 w (the) 4826 6995 w (unadorned) 4979 6995 w (expression.) 720 7105 w (The presence of parentheses does not affect whether the expression is an lvalue.) 1222 7105 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 5) 4391 580 w 10 /Times-Roman f (7.1.5) 720 978 w 10 /Times-Italic f (primary\255expression) 970 978 w 10 /Courier f ([) 1812 978 w 10 /Times-Italic f (expression) 1897 978 w 10 /Courier f (]) 2349 978 w 10 /Times-Roman f (A) 820 1110 w (primary) 921 1110 w (expression) 1266 1110 w (followed) 1722 1110 w (by) 2107 1110 w (an) 2237 1110 w (expression) 2361 1110 w (in) 2818 1110 w (square) 2926 1110 w (brackets) 3216 1110 w (is) 3578 1110 w (a) 3675 1110 w (primary) 3749 1110 w (expression.) 4095 1110 w (The) 4602 1110 w (intuitive) 4787 1110 w (mean\255) 5151 1110 w (ing) 720 1220 w (is) 874 1220 w (that) 967 1220 w (of) 1143 1220 w (a) 1252 1220 w (subscript.) 1322 1220 w (Usually,) 1759 1220 w (the) 2121 1220 w (primary) 2269 1220 w (expression has type ``pointer to .) 2611 1220 w (.) 3936 1220 w (.'', the subscript expression is) 3977 1220 w 10 /Courier f (int) 5195 1220 w 10 /Times-Roman f (,) 5375 1220 w (and) 720 1330 w (the) 895 1330 w (type) 1048 1330 w (of) 1251 1330 w (the) 1365 1330 w (result) 1518 1330 w (is) 1771 1330 w (``) 1870 1330 w (.) 1952 1330 w (.) 1993 1330 w (.) 2034 1330 w (''.) 2075 1330 w (The) 2223 1330 w (expression) 2410 1330 w (``E1[E2]'') 2869 1330 w (is) 3321 1330 w (identical) 3420 1330 w (\(by) 3796 1330 w (definition\)) 3961 1330 w (to) 4415 1330 w (``) 4525 1330 w (*) 4591 1352 w (\() 4657 1330 w (\() 4722 1330 w (E1) 4771 1330 w (\)) 4898 1330 w (+) 4947 1330 w (\() 5019 1330 w (E2) 5068 1330 w (\)) 5195 1330 w (\)) 5260 1330 w (''.) 5309 1330 w (All) 720 1440 w (the) 886 1440 w (clues) 1046 1440 w (needed) 1289 1440 w (to) 1609 1440 w (understand) 1725 1440 w (this) 2201 1440 w (notation) 2384 1440 w (are) 2750 1440 w (contained) 2909 1440 w (in) 3335 1440 w (this) 3451 1440 w (section) 3634 1440 w (together) 3954 1440 w (with) 4318 1440 w (the) 4533 1440 w (discussions) 4692 1440 w (in) 5185 1440 w (\247\247) 5300 1440 w (7.1.1, 7.2.1, and 7.4.1 on identifiers,) 720 1550 w (*) 2194 1572 w (, and) 2244 1550 w 10 /Courier f (+) 2463 1550 w 10 /Times-Roman f (respectively; \24714.3 below summarizes the implications.) 2548 1550 w (7.1.6) 720 1770 w 10 /Times-Italic f (primary\255expression) 970 1770 w 10 /Courier f (\() 1777 1770 w 10 /Times-Italic f (expression\255list) 1897 1770 w 6 /Times-Italic f (opt) 2480 1800 w 10 /Courier f (\)) 2582 1770 w 10 /Times-Roman f (A) 820 1902 w (function) 926 1902 w (call) 1293 1902 w (is) 1471 1902 w (a) 1572 1902 w (primary) 1650 1902 w (expression) 2000 1902 w (followed) 2461 1902 w (by) 2850 1902 w (parentheses) 2984 1902 w (containing) 3483 1902 w (a) 3939 1902 w (possibly) 4018 1902 w (empty,) 4387 1902 w (comma\255separated) 4697 1902 w (list) 720 2012 w (of) 877 2012 w (expressions) 994 2012 w (which) 1494 2012 w (constitute) 1772 2012 w (the) 2195 2012 w (actual) 2351 2012 w (arguments) 2623 2012 w (to) 3073 2012 w (the) 3185 2012 w (function.) 3341 2012 w (The) 3758 2012 w (primary) 3947 2012 w (expression) 4297 2012 w (must) 4757 2012 w (be) 4985 2012 w (of) 5112 2012 w (type) 5228 2012 w (``function) 720 2122 w (returning) 1146 2122 w (.) 1539 2122 w (.) 1580 2122 w (.'',) 1621 2122 w (and) 1764 2122 w (the) 1935 2122 w (result) 2084 2122 w (of) 2333 2122 w (the) 2444 2122 w (function) 2594 2122 w (call) 2955 2122 w (is) 3127 2122 w (of) 3222 2122 w (type) 3333 2122 w (``) 3533 2122 w (.) 3615 2122 w (.) 3656 2122 w (.) 3697 2122 w (''.) 3738 2122 w (As) 3882 2122 w (indicated) 4021 2122 w (below,) 4415 2122 w (a) 4712 2122 w (hitherto) 4784 2122 w (unseen) 5123 2122 w (identifier) 720 2232 w (followed) 1114 2232 w (immediately) 1497 2232 w (by) 2025 2232 w (a) 2153 2232 w (left) 2225 2232 w (parenthesis) 2386 2232 w (is) 2863 2232 w (contextually) 2958 2232 w (declared) 3480 2232 w (to) 3845 2232 w (represent) 3951 2232 w (a) 4344 2232 w (function) 4415 2232 w (returning) 4775 2232 w (an) 5168 2232 w (in\255) 5289 2232 w (teger; thus in the most common case, integer\255valued functions need not be declared.) 720 2342 w (Any) 820 2496 w (actual) 1022 2496 w (arguments) 1290 2496 w (of) 1736 2496 w (type) 1849 2496 w 10 /Courier f (float) 2051 2496 w 10 /Times-Roman f (are) 2381 2496 w (converted) 2532 2496 w (to) 2955 2496 w 10 /Courier f (double) 3063 2496 w 10 /Times-Roman f (before) 3453 2496 w (the) 3737 2496 w (call;) 3889 2496 w (any) 4092 2496 w (of) 4267 2496 w (type) 4381 2496 w 10 /Courier f (char) 4584 2496 w 10 /Times-Roman f (are) 4855 2496 w (converted) 5007 2496 w (to) 720 2606 w 10 /Courier f (int) 823 2606 w 10 /Times-Roman f (.) 1003 2606 w (In) 820 2760 w (preparing) 931 2760 w (for) 1341 2760 w (the) 1485 2760 w (call) 1635 2760 w (to) 1807 2760 w (a) 1913 2760 w (function,) 1985 2760 w (a) 2371 2760 w (copy) 2443 2760 w (is) 2665 2760 w (made) 2760 2760 w (of) 3004 2760 w (each) 3115 2760 w (actual) 3325 2760 w (parameter;) 3591 2760 w (thus,) 4045 2760 w (all) 4265 2760 w (argument\255passing) 4393 2760 w (in) 5131 2760 w (C) 5237 2760 w (is) 5333 2760 w (strictly) 720 2870 w (by) 1028 2870 w (value.) 1158 2870 w (A) 1454 2870 w (function) 1556 2870 w (may) 1919 2870 w (change) 2121 2870 w (the) 2433 2870 w (values) 2585 2870 w (of) 2869 2870 w (its) 2981 2870 w (formal) 3105 2870 w (parameters,) 3400 2870 w (but) 3891 2870 w (these) 4048 2870 w (changes) 4282 2870 w (cannot) 4632 2870 w (possibly) 4927 2870 w (af\255) 5290 2870 w (fect) 720 2980 w (the) 901 2980 w (values) 1056 2980 w (of) 1344 2980 w (the) 1460 2980 w (actual) 1615 2980 w (parameters.) 1886 2980 w (On) 2406 2980 w (the) 2561 2980 w (other) 2716 2980 w (hand,) 2954 2980 w (it) 3206 2980 w (is) 3295 2980 w (perfectly) 3395 2980 w (possible) 3782 2980 w (to) 4143 2980 w (pass) 4254 2980 w (a) 4459 2980 w (pointer) 4536 2980 w (on) 4852 2980 w (the) 4985 2980 w (under\255) 5140 2980 w (standing that the function may change the value of the object to which the pointer points.) 720 3090 w (Recursive calls to any function are permissible.) 820 3244 w (7.1.7) 720 3464 w 10 /Times-Italic f (primary\255lvalue) 970 3464 w 10 /Courier f (.) 1594 3464 w 10 /Times-Italic f (member\255of\255structure) 1679 3464 w 10 /Times-Roman f (An) 820 3596 w (lvalue) 969 3596 w (expression) 1240 3596 w (followed) 1695 3596 w (by) 2078 3596 w (a) 2206 3596 w (dot) 2278 3596 w (followed) 2434 3596 w (by) 2817 3596 w (the) 2945 3596 w (name) 3095 3596 w (of) 3339 3596 w (a) 3450 3596 w (member) 3522 3596 w (of) 3877 3596 w (a) 3988 3596 w (structure) 4060 3596 w (is) 4437 3596 w (a) 4532 3596 w (primary) 4604 3596 w (expression.) 4948 3596 w (The) 720 3706 w (object) 903 3706 w (referred) 1175 3706 w (to) 1517 3706 w (by) 1623 3706 w (the) 1751 3706 w (lvalue) 1900 3706 w (is) 2171 3706 w (assumed) 2265 3706 w (to) 2636 3706 w (have) 2741 3706 w (the) 2956 3706 w (same) 3105 3706 w (form) 3337 3706 w (as) 3558 3706 w (the) 3668 3706 w (structure) 3817 3706 w (containing) 4193 3706 w (the) 4642 3706 w (structure) 4791 3706 w (mem\255) 5167 3706 w (ber.) 720 3816 w (The) 927 3816 w (result) 1112 3816 w (of) 1364 3816 w (the) 1477 3816 w (expression) 1629 3816 w (is) 2086 3816 w (an) 2183 3816 w (lvalue) 2307 3816 w (appropriately) 2581 3816 w (offset) 3143 3816 w (from) 3401 3816 w (the) 3626 3816 w (origin) 3779 3816 w (of) 4049 3816 w (the) 4163 3816 w (given) 4316 3816 w (lvalue) 4569 3816 w (whose) 4844 3816 w (type) 5130 3816 w (is) 5333 3816 w (that of the named structure member.) 720 3926 w (The given lvalue is not required to have any particular type.) 2217 3926 w (Structures are discussed in \2478.5.) 820 4080 w (7.1.8) 720 4300 w 10 /Times-Italic f (primary\255expression) 970 4300 w 10 /S f (-) 1777 4300 w 10 /Courier f (>) 1832 4300 w 10 /Times-Italic f (member\255of\255structure) 1917 4300 w 10 /Times-Roman f (The) 820 4432 w (primary\255expression) 1004 4432 w (is) 1809 4432 w (assumed) 1905 4432 w (to) 2278 4432 w (be) 2385 4432 w (a) 2508 4432 w (pointer) 2581 4432 w (which) 2894 4432 w (points) 3168 4432 w (to) 3443 4432 w (an) 3551 4432 w (object) 3675 4432 w (of) 3949 4432 w (the) 4062 4432 w (same) 4214 4432 w (form) 4449 4432 w (as) 4673 4432 w (the) 4786 4432 w (structure) 4938 4432 w (of) 5317 4432 w (which) 720 4542 w (the) 990 4542 w (member\255of\255structure) 1138 4542 w (is) 1989 4542 w (a) 2082 4542 w (part.) 2152 4542 w (The) 2383 4542 w (result) 2564 4542 w (is) 2812 4542 w (an) 2905 4542 w (lvalue) 3025 4542 w (appropriately offset from the origin of the pointed\255to) 3295 4542 w (structure) 720 4652 w (whose) 1097 4652 w (type) 1380 4652 w (is) 1580 4652 w (that) 1675 4652 w (of) 1853 4652 w (the) 1964 4652 w (named) 2115 4652 w (structure) 2410 4652 w (member.) 2788 4652 w (The) 3194 4652 w (type) 3378 4652 w (of) 3579 4652 w (the) 3691 4652 w (primary\255expression) 3842 4652 w (need) 4647 4652 w (not) 4864 4652 w (in) 5021 4652 w (fact) 5128 4652 w (be) 5306 4652 w (pointer; it is sufficient that it be a pointer, character, or integer.) 720 4762 w (Except) 820 4916 w (for) 1131 4916 w (the) 1281 4916 w (relaxation) 1437 4916 w (of) 1870 4916 w (the) 1987 4916 w (requirement) 2143 4916 w (that) 2659 4916 w (E1) 2843 4916 w (be) 2988 4916 w (of) 3117 4916 w (pointer) 3235 4916 w (type,) 3553 4916 w (the) 3785 4916 w (expression) 3942 4916 w (``E1) 4404 4916 w 10 /S f (-) 4581 4916 w 10 /Times-Roman f (>MOS'') 4636 4916 w (is) 5010 4916 w (exactly) 5112 4916 w (equivalent to ``\() 720 5026 w (*) 1363 5048 w (E1\).MOS''.) 1413 5026 w (7.2) 720 5246 w (Unary operators) 895 5246 w (Expressions with unary operators group right\255to\255left.) 820 5378 w (7.2.1) 720 5598 w (*) 970 5620 w 10 /Times-Italic f (expression) 1045 5598 w 10 /Times-Roman f (The) 820 5730 w (unary) 1005 5730 w (*) 1262 5752 w (operator) 1342 5730 w (means) 1704 5730 w 10 /Times-Italic f (indirection:) 1989 5730 w 10 /Times-Roman f (the) 2491 5730 w (expression) 2643 5730 w (must) 3100 5730 w (be) 3325 5730 w (a) 3450 5730 w (pointer,) 3525 5730 w (and) 3864 5730 w (the) 4039 5730 w (result) 4192 5730 w (is) 4445 5730 w (an) 4543 5730 w (lvalue) 4668 5730 w (referring) 4943 5730 w (to) 5322 5730 w (the) 720 5840 w (object) 873 5840 w (to) 1148 5840 w (which) 1257 5840 w (the) 1532 5840 w (expression) 1685 5840 w (points.) 2143 5840 w (If) 2469 5840 w (the) 2566 5840 w (type) 2719 5840 w (of) 2922 5840 w (the) 3036 5840 w (expression) 3189 5840 w (is) 3647 5840 w (``pointer) 3745 5840 w (to) 4125 5840 w (.) 4234 5840 w (.) 4275 5840 w (.'',) 4316 5840 w (the) 4462 5840 w (type) 4614 5840 w (of) 4816 5840 w (the) 4929 5840 w (result) 5081 5840 w (is) 5333 5840 w (``) 720 5950 w (.) 802 5950 w (.) 843 5950 w (.) 884 5950 w (''.) 925 5950 w (7.2.2) 720 6170 w 10 /Courier f (&) 970 6170 w 10 /Times-Italic f (lvalue\255expression) 1055 6170 w 10 /Times-Roman f (The) 820 6302 w (result) 1002 6302 w (of) 1251 6302 w (the) 1361 6302 w (unary) 1510 6302 w 10 /Courier f (&) 1764 6302 w 10 /Times-Roman f (operator) 1851 6302 w (is) 2210 6302 w (a) 2304 6302 w (pointer) 2376 6302 w (to) 2687 6302 w (the) 2793 6302 w (object) 2943 6302 w (referred) 3215 6302 w (to) 3557 6302 w (by) 3663 6302 w (the) 3791 6302 w (lvalue\255expression.) 3941 6302 w (If) 4723 6302 w (the) 4817 6302 w (type) 4967 6302 w (of) 5167 6302 w (the) 5278 6302 w (lvalue\255expression is ``) 720 6412 w (.) 1623 6412 w (.) 1664 6412 w (.) 1705 6412 w ('', the type of the result is ``pointer to .) 1746 6412 w (.) 3318 6412 w (.''.) 3359 6412 w (7.2.3) 720 6632 w 10 /S f (-) 970 6632 w 10 /Times-Italic f (expression) 1050 6632 w 10 /Times-Roman f (The) 820 6764 w (result) 1009 6764 w (is) 1265 6764 w (the) 1366 6764 w (negative) 1522 6764 w (of) 1894 6764 w (the) 2011 6764 w (expression,) 2167 6764 w (and) 2653 6764 w (has) 2831 6764 w (the) 2998 6764 w (same) 3154 6764 w (type.) 3393 6764 w (The) 3649 6764 w (type) 3838 6764 w (of) 4044 6764 w (the) 4161 6764 w (expression) 4317 6764 w (must) 4778 6764 w (be) 5007 6764 w 10 /Courier f (char) 5135 6764 w 10 /Times-Roman f (,) 5375 6764 w 10 /Courier f (int) 720 6874 w 10 /Times-Roman f (,) 900 6874 w 10 /Courier f (float) 950 6874 w 10 /Times-Roman f (, or) 1250 6874 w 10 /Courier f (double) 1408 6874 w 10 /Times-Roman f (.) 1768 6874 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 6) 720 580 w 10 /Times-Roman f (7.2.4) 720 978 w 10 /Courier f (!) 970 978 w 10 /Times-Italic f (expression) 1055 978 w 10 /Times-Roman f (The) 820 1110 w (result) 1005 1110 w (of) 1257 1110 w (the) 1370 1110 w (logical) 1522 1110 w (negation) 1824 1110 w (operator) 2198 1110 w 10 /Courier f (!) 2560 1110 w 10 /Times-Roman f (is) 2675 1110 w (1) 2772 1110 w (if) 2852 1110 w (the) 2943 1110 w (value) 3095 1110 w (of) 3341 1110 w (the) 3454 1110 w (expression) 3606 1110 w (is) 4063 1110 w (0,) 4161 1110 w (0) 4267 1110 w (if) 4348 1110 w (the) 4440 1110 w (value) 4593 1110 w (of) 4840 1110 w (the) 4954 1110 w (expres\255) 5107 1110 w (sion is non\255zero.) 720 1220 w (The type of the result is) 1433 1220 w 10 /Courier f (int) 2404 1220 w 10 /Times-Roman f (.) 2584 1220 w (This operator is applicable only to) 2659 1220 w 10 /Courier f (int) 4052 1220 w 10 /Times-Roman f (s or) 4232 1220 w 10 /Courier f (char) 4404 1220 w 10 /Times-Roman f (s.) 4644 1220 w (7.2.5) 720 1440 w 14 /Courier f (~) 970 1495 w 10 /Times-Italic f (expression) 1079 1440 w 10 /Times-Roman f (The) 820 1572 w 14 /Times-Roman f (\224) 1000 1627 w 10 /Times-Roman f (operator yields the one's complement of its operand.) 1071 1572 w (The type of the) 3223 1572 w (expression) 3856 1572 w (must) 4309 1572 w (be) 4530 1572 w 10 /Courier f (int) 4650 1572 w 10 /Times-Roman f (or) 4856 1572 w 10 /Courier f (char) 4965 1572 w 10 /Times-Roman f (,) 5205 1572 w (and) 5256 1572 w (the result is) 720 1682 w 10 /Courier f (int) 1206 1682 w 10 /Times-Roman f (.) 1386 1682 w (7.2.6) 720 1902 w (++) 970 1902 w 10 /Times-Italic f (lvalue\255expression) 1107 1902 w 10 /Times-Roman f (The) 820 2034 w (object) 1006 2034 w (referred) 1281 2034 w (to) 1626 2034 w (by) 1735 2034 w (the) 1866 2034 w (lvalue) 2019 2034 w (expression) 2295 2034 w (is) 2754 2034 w (incremented.) 2853 2034 w (The) 3428 2034 w (value) 3615 2034 w (is) 3863 2034 w (the) 3962 2034 w (new) 4116 2034 w (value) 4314 2034 w (of) 4562 2034 w (the) 4677 2034 w (lvalue) 4831 2034 w (expres\255) 5107 2034 w (sion) 720 2144 w (and) 914 2144 w (the) 1085 2144 w (type) 1234 2144 w (is) 1433 2144 w (the) 1527 2144 w (type) 1676 2144 w (of) 1875 2144 w (the) 1985 2144 w (lvalue.) 2134 2144 w (If) 2455 2144 w (the) 2548 2144 w (expression) 2697 2144 w (is) 3151 2144 w 10 /Courier f (int) 3245 2144 w 10 /Times-Roman f (or) 3452 2144 w 10 /Courier f (char) 3562 2144 w 10 /Times-Roman f (,) 3802 2144 w (it) 3854 2144 w (is) 3937 2144 w (incremented) 4031 2144 w (by) 4551 2144 w (1;) 4678 2144 w (if) 4783 2144 w (it) 4871 2144 w (is) 4954 2144 w (a) 5047 2144 w (pointer) 5117 2144 w (to) 720 2254 w (an) 824 2254 w (object,) 944 2254 w (it) 1239 2254 w (is) 1321 2254 w (incremented) 1414 2254 w (by) 1933 2254 w (the) 2059 2254 w (length) 2207 2254 w (of) 2483 2254 w (the) 2592 2254 w (object.) 2740 2254 w (++) 3060 2254 w (is) 3198 2254 w (applicable) 3291 2254 w (only) 3727 2254 w (to) 3931 2254 w (these) 4035 2254 w (types.) 4266 2254 w (\(Not,) 4554 2254 w (for) 4789 2254 w (example,) 4932 2254 w (to) 5322 2254 w 10 /Courier f (float) 720 2364 w 10 /Times-Roman f (or) 1045 2364 w 10 /Courier f (double) 1153 2364 w 10 /Times-Roman f (.\)) 1513 2364 w (7.2.7) 720 2584 w 10 /S f (--) 970 2584 w 10 /Times-Italic f (lvalue\255expression) 1105 2584 w 10 /Times-Roman f (The object referred to by the lvalue expression is decremented analogously to the ++ operator.) 820 2716 w (7.2.8) 720 2936 w 10 /Times-Italic f (lvalue\255expression ++) 970 2936 w 10 /Times-Roman f (The) 820 3068 w (result) 1006 3068 w (is) 1259 3068 w (the) 1358 3068 w (value) 1512 3068 w (of) 1760 3068 w (the) 1875 3068 w (object) 2029 3068 w (referred) 2305 3068 w (to) 2651 3068 w (by) 2761 3068 w (the) 2893 3068 w (lvalue) 3047 3068 w (expression.) 3323 3068 w (After) 3832 3068 w (the) 4074 3068 w (result) 4228 3068 w (is) 4482 3068 w (noted,) 4581 3068 w (the) 4860 3068 w (object) 5014 3068 w (re\255) 5290 3068 w (ferred) 720 3178 w (to) 983 3178 w (by) 1087 3178 w (the) 1213 3178 w (lvalue) 1361 3178 w (is) 1631 3178 w (incremented) 1724 3178 w (in) 2243 3178 w (the) 2347 3178 w (same) 2495 3178 w (manner) 2726 3178 w (as) 3051 3178 w (for) 3160 3178 w (the) 3302 3178 w (prefix) 3450 3178 w (++) 3714 3178 w (operator: by 1 for an) 3852 3178 w 10 /Courier f (int) 4697 3178 w 10 /Times-Roman f (or) 4902 3178 w 10 /Courier f (char) 5010 3178 w 10 /Times-Roman f (, by) 5250 3178 w (the) 720 3288 w (length) 885 3288 w (of) 1178 3288 w (the) 1304 3288 w (pointed\255to) 1469 3288 w (object) 1923 3288 w (for) 2210 3288 w (a) 2369 3288 w (pointer.) 2456 3288 w (The) 2832 3288 w (type) 3030 3288 w (of) 3245 3288 w (the) 3371 3288 w (result) 3536 3288 w (is) 3801 3288 w (the) 3911 3288 w (same) 4076 3288 w (as) 4324 3288 w (the) 4450 3288 w (type) 4615 3288 w (of) 4830 3288 w (the) 4957 3288 w (lvalue\255) 5123 3288 w (expression.) 720 3398 w (7.2.9) 720 3618 w 10 /Times-Italic f (lvalue\255expression ) 970 3618 w 10 /S f (--) 1699 3618 w 10 /Times-Roman f (The) 820 3750 w (result) 1005 3750 w (of) 1257 3750 w (the) 1370 3750 w (expression) 1522 3750 w (is) 1979 3750 w (the) 2076 3750 w (value) 2228 3750 w (of) 2474 3750 w (the) 2587 3750 w (object) 2739 3750 w (referred) 3013 3750 w (to) 3357 3750 w (by) 3466 3750 w (the) 3597 3750 w (the) 3750 3750 w (lvalue) 3903 3750 w (expression.) 4178 3750 w (After) 4686 3750 w (the) 4927 3750 w (result) 5080 3750 w (is) 5333 3750 w (noted, the object referred to by the lvalue expression is decremented in a way analogous to the postfix ++ operator.) 720 3860 w (7.2.10) 720 4080 w 10 /Courier f (sizeof) 1020 4080 w 10 /Times-Italic f (expression) 1440 4080 w 10 /Times-Roman f (The) 820 4212 w 10 /Courier f (sizeof) 1009 4212 w 10 /Times-Roman f (operator) 1403 4212 w (yields) 1769 4212 w (the) 2042 4212 w (size,) 2198 4212 w (in) 2412 4212 w (bytes,) 2524 4212 w (of) 2794 4212 w (its) 2911 4212 w (operand.) 3040 4212 w (When) 3445 4212 w (applied) 3717 4212 w (to) 4045 4212 w (an) 4157 4212 w (array,) 4285 4212 w (the) 4549 4212 w (result) 4706 4212 w (is) 4963 4212 w (the) 5065 4212 w (total) 5222 4212 w (number) 720 4322 w (of) 1052 4322 w (bytes) 1162 4322 w (in) 1400 4322 w (the) 1505 4322 w (array.) 1654 4322 w (The) 1935 4322 w (size) 2117 4322 w (is) 2299 4322 w (determined) 2393 4322 w (from) 2869 4322 w (the) 3090 4322 w (declarations) 3239 4322 w (of) 3748 4322 w (the) 3857 4322 w (objects) 4005 4322 w (in) 4314 4322 w (the) 4418 4322 w (expression.) 4566 4322 w (This) 5069 4322 w (ex\255) 5273 4322 w (pression) 720 4432 w (is) 1087 4432 w (semantically) 1188 4432 w (an) 1727 4432 w (integer) 1855 4432 w (constant) 2166 4432 w (and) 2533 4432 w (may) 2711 4432 w (be) 2917 4432 w (used) 3045 4432 w (anywhere) 3262 4432 w (a) 3683 4432 w (constant) 3762 4432 w (is) 4130 4432 w (required.) 4232 4432 w (Its) 4649 4432 w (major) 4784 4432 w (use) 5052 4432 w (is) 5220 4432 w (in) 5322 4432 w (communication with routines like storage allocators and I/O systems.) 720 4542 w (7.3) 720 4762 w (Multiplicative operators) 895 4762 w (The multiplicative operators) 820 4894 w (*) 1977 4916 w (,) 2027 4894 w 10 /Courier f (/) 2077 4894 w 10 /Times-Roman f (, and) 2137 4894 w 10 /Courier f (%) 2356 4894 w 10 /Times-Roman f (group left\255to\255right.) 2441 4894 w (7.3.1) 720 5114 w 10 /Times-Italic f (expression) 970 5114 w 10 /Times-Roman f (*) 1457 5136 w 10 /Times-Italic f (expression) 1567 5114 w 10 /Times-Roman f (The) 820 5246 w (binary) 1010 5246 w (*) 1300 5268 w (operator) 1385 5246 w (indicates) 1752 5246 w (multiplication.) 2142 5246 w (If) 2789 5246 w (both) 2890 5246 w (operands) 3104 5246 w (are) 3500 5246 w 10 /Courier f (int) 3657 5246 w 10 /Times-Roman f (or) 3873 5246 w 10 /Courier f (char) 3992 5246 w 10 /Times-Roman f (,) 4232 5246 w (the) 4293 5246 w (result) 4451 5246 w (is) 4709 5246 w 10 /Courier f (int) 4812 5246 w 10 /Times-Roman f (;) 4992 5246 w (if) 5056 5246 w (one) 5153 5246 w (is) 5333 5246 w 10 /Courier f (int) 720 5356 w 10 /Times-Roman f (or) 932 5356 w 10 /Courier f (char) 1047 5356 w 10 /Times-Roman f (and) 1319 5356 w (one) 1494 5356 w 10 /Courier f (float) 1669 5356 w 10 /Times-Roman f (or) 2000 5356 w 10 /Courier f (double) 2114 5356 w 10 /Times-Roman f (,) 2474 5356 w (the) 2530 5356 w (former) 2683 5356 w (is) 2985 5356 w (converted) 3083 5356 w (to) 3507 5356 w 10 /Courier f (double) 3616 5356 w 10 /Times-Roman f (,) 3976 5356 w (and) 4032 5356 w (the) 4207 5356 w (result) 4360 5356 w (is) 4613 5356 w 10 /Courier f (double) 4711 5356 w 10 /Times-Roman f (;) 5071 5356 w (if) 5130 5356 w (both) 5222 5356 w (are) 720 5466 w 10 /Courier f (float) 866 5466 w 10 /Times-Roman f (or) 1191 5466 w 10 /Courier f (double) 1299 5466 w 10 /Times-Roman f (, the result is) 1659 5466 w 10 /Courier f (double) 2195 5466 w 10 /Times-Roman f (.) 2555 5466 w (No other combinations are allowed.) 2630 5466 w (7.3.2) 720 5686 w 10 /Times-Italic f (expression) 970 5686 w 10 /Courier f (/) 1422 5686 w 10 /Times-Italic f (expression) 1507 5686 w 10 /Times-Roman f (The binary) 820 5818 w 10 /Courier f (/) 1280 5818 w 10 /Times-Roman f (operator indicates division.) 1365 5818 w (The same type considerations as for multiplication apply.) 2500 5818 w (7.3.3) 720 6038 w 10 /Times-Italic f (expression) 970 6038 w 10 /Courier f (%) 1422 6038 w 10 /Times-Italic f (expression) 1507 6038 w 10 /Times-Roman f (The) 820 6170 w (binary) 1001 6170 w 10 /Courier f (%) 1282 6170 w 10 /Times-Roman f (operator) 1368 6170 w (yields) 1726 6170 w (the) 1991 6170 w (remainder) 2139 6170 w (from) 2569 6170 w (the) 2789 6170 w (division) 2937 6170 w (of) 3287 6170 w (the) 3397 6170 w (first) 3546 6170 w (expression) 3734 6170 w (by) 4188 6170 w (the) 4315 6170 w (second.) 4464 6170 w (Both) 4818 6170 w (operands) 5040 6170 w (must) 720 6280 w (be) 943 6280 w 10 /Courier f (int) 1065 6280 w 10 /Times-Roman f (or) 1273 6280 w 10 /Courier f (char) 1384 6280 w 10 /Times-Roman f (,) 1624 6280 w (and) 1677 6280 w (the) 1849 6280 w (result) 1999 6280 w (is) 2249 6280 w 10 /Courier f (int) 2344 6280 w 10 /Times-Roman f (.) 2524 6280 w (In) 2602 6280 w (the) 2713 6280 w (current) 2863 6280 w (implementation,) 3173 6280 w (the) 3853 6280 w (remainder) 4002 6280 w (has) 4433 6280 w (the) 4593 6280 w (same) 4742 6280 w (sign) 4974 6280 w (as) 5168 6280 w (the) 5278 6280 w (dividend.) 720 6390 w (7.4) 720 6610 w (Additive operators) 895 6610 w (The additive operators) 820 6742 w 10 /Courier f (+) 1743 6742 w 10 /Times-Roman f (and) 1828 6742 w 10 /S f (-) 1997 6742 w 10 /Times-Roman f (group left\255to\255right.) 2077 6742 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Page: 7 7 /saveobj save def mark 7 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 7) 4391 580 w 10 /Times-Roman f (7.4.1) 720 978 w 10 /Times-Italic f (expression) 970 978 w 10 /Courier f (+) 1422 978 w 10 /Times-Italic f (expression) 1507 978 w 10 /Times-Roman f (The result is the sum of) 820 1110 w (the) 1787 1110 w (expressions.) 1935 1110 w (If) 2477 1110 w (both) 2569 1110 w (operands) 2773 1110 w (are) 3159 1110 w 10 /Courier f (int) 3306 1110 w 10 /Times-Roman f (or) 3512 1110 w 10 /Courier f (char) 3621 1110 w 10 /Times-Roman f (,) 3861 1110 w (the) 3912 1110 w (result) 4060 1110 w (is) 4308 1110 w 10 /Courier f (int) 4401 1110 w 10 /Times-Roman f (.) 4581 1110 w (If) 4657 1110 w (both) 4749 1110 w (are) 4953 1110 w 10 /Courier f (float) 5100 1110 w 10 /Times-Roman f (or) 720 1220 w 10 /Courier f (double) 829 1220 w 10 /Times-Roman f (,) 1189 1220 w (the) 1240 1220 w (result) 1388 1220 w (is) 1636 1220 w 10 /Courier f (double) 1729 1220 w 10 /Times-Roman f (.) 2089 1220 w (If) 2165 1220 w (one is) 2257 1220 w 10 /Courier f (char) 2518 1220 w 10 /Times-Roman f (or) 2783 1220 w 10 /Courier f (int) 2891 1220 w 10 /Times-Roman f (and one is) 3096 1220 w 10 /Courier f (float) 3526 1220 w 10 /Times-Roman f (or) 3851 1220 w 10 /Courier f (double) 3959 1220 w 10 /Times-Roman f (, the former is converted to) 4319 1220 w 10 /Courier f (double) 720 1330 w 10 /Times-Roman f (and the result is) 1105 1330 w 10 /Courier f (double) 1760 1330 w 10 /Times-Roman f (.) 2120 1330 w (If an) 2195 1330 w 10 /Courier f (int) 2405 1330 w 10 /Times-Roman f (or) 2610 1330 w 10 /Courier f (char) 2718 1330 w 10 /Times-Roman f (is) 2984 1330 w (added) 3077 1330 w (to) 3341 1330 w (a) 3445 1330 w (pointer,) 3515 1330 w (the) 3849 1330 w (former) 3997 1330 w (is) 4294 1330 w (converted) 4387 1330 w (by) 4806 1330 w (multiplying) 4932 1330 w (it) 720 1440 w (by) 808 1440 w (the) 940 1440 w (length) 1094 1440 w (of) 1376 1440 w (the) 1491 1440 w (object) 1645 1440 w (to) 1921 1440 w (which) 2030 1440 w (the) 2305 1440 w (pointer) 2458 1440 w (points) 2772 1440 w (and) 3048 1440 w (the) 3223 1440 w (result) 3376 1440 w (is) 3629 1440 w (a) 3727 1440 w (pointer) 3802 1440 w (of) 4116 1440 w (the) 4230 1440 w (same) 4383 1440 w (type) 4619 1440 w (as) 4822 1440 w (the) 4936 1440 w (original) 5089 1440 w (pointer.) 720 1550 w (Thus) 1082 1550 w (if) 1311 1550 w (P) 1401 1550 w (is) 1486 1550 w (a) 1582 1550 w (pointer) 1655 1550 w (to) 1967 1550 w (an) 2074 1550 w (object,) 2197 1550 w (the) 2495 1550 w (expression) 2646 1550 w (``P+1'') 3102 1550 w (is) 3425 1550 w (a) 3521 1550 w (pointer) 3594 1550 w (to) 3906 1550 w (another) 4013 1550 w (object) 4341 1550 w (of) 4615 1550 w (the) 4728 1550 w (same) 4880 1550 w (type) 5115 1550 w (as) 5317 1550 w (the first and immediately following it in storage.) 720 1660 w (No other type combinations are allowed.) 820 1814 w (7.4.2) 720 2034 w 10 /Times-Italic f (expression) 970 2034 w 10 /S f (-) 1422 2034 w 10 /Times-Italic f (expression) 1537 2034 w 10 /Times-Roman f (The) 820 2166 w (result) 1001 2166 w (is) 1249 2166 w (the) 1342 2166 w (difference) 1490 2166 w (of) 1920 2166 w (the) 2030 2166 w (operands.) 2179 2166 w (If) 2616 2166 w (both) 2709 2166 w (operands) 2914 2166 w (are) 3301 2166 w 10 /Courier f (int) 3449 2166 w 10 /Times-Roman f (,) 3629 2166 w 10 /Courier f (char) 3681 2166 w 10 /Times-Roman f (,) 3921 2166 w 10 /Courier f (float) 3973 2166 w 10 /Times-Roman f (,) 4273 2166 w (or) 4325 2166 w 10 /Courier f (double) 4435 2166 w 10 /Times-Roman f (,) 4795 2166 w (the) 4847 2166 w (same) 4996 2166 w (type) 5228 2166 w (considerations) 720 2276 w (as) 1327 2276 w (for) 1440 2276 w 10 /Courier f (+) 1586 2276 w 10 /Times-Roman f (apply.) 1676 2276 w (If) 1978 2276 w (an) 2074 2276 w 10 /Courier f (int) 2198 2276 w 10 /Times-Roman f (or) 2408 2276 w 10 /Courier f (char) 2521 2276 w 10 /Times-Roman f (is) 2791 2276 w (subtracted) 2888 2276 w (from) 3328 2276 w (a) 3552 2276 w (pointer,) 3626 2276 w (the) 3964 2276 w (former) 4116 2276 w (is) 4417 2276 w (converted) 4514 2276 w (in) 4937 2276 w (the) 5044 2276 w (same) 5195 2276 w (way as explained under) 720 2386 w 10 /Courier f (+) 1719 2386 w 10 /Times-Roman f (above.) 1804 2386 w (If) 820 2540 w (two) 914 2540 w (pointers) 1092 2540 w (to) 1442 2540 w (objects) 1549 2540 w (of) 1861 2540 w (the) 1973 2540 w (same) 2124 2540 w (type) 2358 2540 w (are) 2559 2540 w (subtracted,) 2709 2540 w (the) 3173 2540 w (result) 3324 2540 w (is) 3575 2540 w (converted) 3671 2540 w (\(by) 4093 2540 w (division) 4255 2540 w (by) 4607 2540 w (the) 4736 2540 w (length) 4887 2540 w (of) 5166 2540 w (the) 5278 2540 w (object\)) 720 2650 w (to) 1025 2650 w (an) 1131 2650 w 10 /Courier f (int) 1253 2650 w 10 /Times-Roman f (representing) 1460 2650 w (the) 1980 2650 w (number) 2129 2650 w (of) 2461 2650 w (objects) 2571 2650 w (separating) 2881 2650 w (the) 3318 2650 w (pointed\255to) 3467 2650 w (objects.) 3905 2650 w (This) 4265 2650 w (conversion) 4470 2650 w (will) 4935 2650 w (in) 5118 2650 w (gen\255) 5223 2650 w (eral) 720 2760 w (give) 898 2760 w (unexpected) 1099 2760 w (results) 1582 2760 w (unless) 1872 2760 w (the) 2151 2760 w (pointers) 2303 2760 w (point) 2655 2760 w (to) 2891 2760 w (objects) 2999 2760 w (in) 3312 2760 w (the) 3420 2760 w (same) 3572 2760 w (array,) 3807 2760 w (since) 4066 2760 w (pointers,) 4301 2760 w (even) 4678 2760 w (to) 4896 2760 w (objects) 5004 2760 w (of) 5317 2760 w (the same type, do not necessarily differ by a multiple of the object\255length.) 720 2870 w (7.5) 720 3090 w (Shift operators) 895 3090 w (The shift operators) 820 3222 w 10 /Courier f (<<) 1599 3222 w 10 /Times-Roman f (and) 1744 3222 w 10 /Courier f (>>) 1913 3222 w 10 /Times-Roman f (group left\255to\255right.) 2058 3222 w (7.5.1) 720 3442 w 10 /Times-Italic f (expression) 970 3442 w 10 /Courier f (<<) 1422 3442 w 10 /Times-Italic f (expression) 1602 3442 w 10 /Times-Roman f (7.5.2) 720 3552 w 10 /Times-Italic f (expression) 970 3552 w 10 /Courier f (>>) 1422 3552 w 10 /Times-Italic f (expression) 1602 3552 w 10 /Times-Roman f (Both) 820 3684 w (operands) 1047 3684 w (must) 1439 3684 w (be) 1666 3684 w 10 /Courier f (int) 1792 3684 w 10 /Times-Roman f (or) 2004 3684 w 10 /Courier f (char) 2119 3684 w 10 /Times-Roman f (,) 2359 3684 w (and) 2416 3684 w (the) 2592 3684 w (result) 2746 3684 w (is) 3000 3684 w 10 /Courier f (int) 3099 3684 w 10 /Times-Roman f (.) 3279 3684 w (The) 3362 3684 w (second) 3550 3684 w (operand) 3860 3684 w (should) 4214 3684 w (be) 4514 3684 w (non\255negative.) 4641 3684 w (The) 5245 3684 w (value) 720 3794 w (of) 962 3794 w (``E1<>E2'' is E1 \(interpreted as a two's complement, 16\255bit quantity\)) 720 3904 w (arithmetically) 3897 3904 w (right\255shifted) 4478 3904 w (E2) 4998 3904 w (bit) 5135 3904 w (po\255) 5267 3904 w (sitions.) 720 4014 w (Vacated) 1062 4014 w (bits) 1418 4014 w (are) 1593 4014 w (filled) 1744 4014 w (by) 1985 4014 w (a) 2115 4014 w (copy) 2189 4014 w (of) 2413 4014 w (the) 2526 4014 w (sign) 2678 4014 w (bit) 2875 4014 w (of) 3011 4014 w (E1.) 3124 4014 w ([Note:) 3315 4014 w (the) 3600 4014 w (use) 3751 4014 w (of) 3913 4014 w (arithmetic) 4025 4014 w (rather) 4459 4014 w (than) 4720 4014 w (logical) 4921 4014 w (shift) 5222 4014 w (does not survive transportation between machines.]) 720 4124 w (7.6) 720 4344 w (Relational operators) 895 4344 w (The) 820 4476 w (relational) 1001 4476 w (operators) 1404 4476 w (group) 1802 4476 w (left\255to\255right,) 2062 4476 w (but) 2580 4476 w (this) 2735 4476 w (fact) 2907 4476 w (is) 3083 4476 w (not) 3177 4476 w (very) 3332 4476 w (useful;) 3536 4476 w (``a) 1422 4916 w 10 /Times-Italic f (expression) 1507 4916 w 10 /Times-Roman f (7.6.3) 720 5026 w 10 /Times-Italic f (expression) 970 5026 w 10 /Courier f (<=) 1422 5026 w 10 /Times-Italic f (expression) 1567 5026 w 10 /Times-Roman f (7.6.4) 720 5136 w 10 /Times-Italic f (expression) 970 5136 w 10 /Courier f (>=) 1422 5136 w 10 /Times-Italic f (expression) 1567 5136 w 10 /Times-Roman f (The) 820 5268 w (operators) 1001 5268 w (<) 1398 5268 w (\(less) 1480 5268 w (than\),) 1689 5268 w (>) 1945 5268 w (\(greater) 2028 5268 w (than\),) 2364 5268 w (<=) 2621 5268 w (\(less) 2760 5268 w (than) 2970 5268 w (or) 3169 5268 w (equal) 3279 5268 w (to\)) 3522 5268 w (and) 3660 5268 w (>=) 3831 5268 w (\(greater) 3970 5268 w (than) 4306 5268 w (or) 4505 5268 w (equal) 4615 5268 w (to\)) 4858 5268 w (all) 4996 5268 w (yield) 5123 5268 w (0) 5350 5268 w (if) 720 5378 w (the) 812 5378 w (specified) 964 5378 w (relation) 1354 5378 w (is) 1689 5378 w (false) 1786 5378 w (and) 2004 5378 w (1) 2178 5378 w (if) 2258 5378 w (it) 2349 5378 w (is) 2435 5378 w (true.) 2532 5378 w (Operand) 2767 5378 w (conversion) 3140 5378 w (is) 3608 5378 w (exactly) 3705 5378 w (the) 4023 5378 w (same) 4175 5378 w (as) 4410 5378 w (for) 4523 5378 w (the) 4669 5378 w 10 /Courier f (+) 4821 5378 w 10 /Times-Roman f (operator) 4911 5378 w (ex\255) 5273 5378 w (cept) 720 5488 w (that) 912 5488 w (pointers) 1088 5488 w (of) 1436 5488 w (any) 1545 5488 w (kind) 1715 5488 w (may) 1919 5488 w (be) 2117 5488 w (compared;) 2237 5488 w (the) 2684 5488 w (result) 2832 5488 w (in) 3080 5488 w (this) 3184 5488 w (case) 3355 5488 w (depends) 3553 5488 w (on) 3907 5488 w (the) 4034 5488 w (relative) 4183 5488 w (locations) 4509 5488 w (in) 4897 5488 w (storage) 5002 5488 w (of) 5317 5488 w (the pointed\255to objects.) 720 5598 w (It does not seem to be very meaningful to compare pointers with integers other than 0.) 1661 5598 w (7.7) 720 5818 w (Equality operators) 895 5818 w (7.7.1) 720 5950 w 10 /Times-Italic f (expression) 970 5950 w 10 /Courier f (==) 1422 5950 w 10 /Times-Italic f (expression) 1567 5950 w 10 /Times-Roman f (7.7.2) 720 6060 w 10 /Times-Italic f (expression) 970 6060 w 10 /Courier f (!=) 1422 6060 w 10 /Times-Italic f (expression) 1567 6060 w 10 /Times-Roman f (The) 820 6192 w 10 /Courier f (==) 1004 6192 w 10 /Times-Roman f (\(equal) 1153 6192 w (to\)) 1431 6192 w (and) 1571 6192 w (the) 1744 6192 w 10 /Courier f (!=) 1895 6192 w 10 /Times-Roman f (\(not) 2044 6192 w (equal) 2234 6192 w (to\)) 2480 6192 w (operators) 2621 6192 w (are) 3022 6192 w (exactly) 3173 6192 w (analogous) 3491 6192 w (to) 3926 6192 w (the) 4034 6192 w (relational) 4186 6192 w (operators) 4593 6192 w (except) 4994 6192 w (for) 5284 6192 w (their lower precedence.) 720 6302 w (\(Thus ``a>) 1314 5884 w 10 /Times-Italic f (expression) 1554 5884 w 10 /Times-Roman f (7.14.8) 720 5994 w 10 /Times-Italic f (lvalue) 1045 5994 w 10 /Courier f (=<<) 1314 5994 w 10 /Times-Italic f (expression) 1554 5994 w 10 /Times-Roman f (7.14.9) 720 6104 w 10 /Times-Italic f (lvalue) 1045 6104 w 10 /Courier f (=&) 1314 6104 w 10 /Times-Italic f (expression) 1494 6104 w 10 /Times-Roman f (7.14.10) 720 6214 w 10 /Times-Italic f (lvalue) 1045 6214 w 10 /Courier f (=^) 1314 6214 w 10 /Times-Italic f (expression) 1494 6214 w 10 /Times-Roman f (7.14.11) 720 6324 w 10 /Times-Italic f (lvalue) 1045 6324 w 10 /Courier f (=) 1314 6324 w 10 /S f (|) 1390 6324 w 10 /Times-Italic f (expression) 1470 6324 w 10 /Times-Roman f (The) 820 6456 w (behavior) 1030 6456 w (of) 1434 6456 w (an) 1572 6456 w (expression) 1722 6456 w (of) 2205 6456 w (the) 2344 6456 w (form) 2522 6456 w (``E1 =op E2'') 2772 6456 w (may) 3388 6456 w (be) 3616 6456 w (inferred) 3766 6456 w (by) 4137 6456 w (taking) 4293 6456 w (it) 4599 6456 w (as) 4711 6456 w (equivalent) 4850 6456 w (to) 5322 6456 w (``E1 = E1 op E2'';) 720 6566 w (however,) 1500 6566 w (E1) 1899 6566 w (is) 2041 6566 w (evaluated) 2139 6566 w (only) 2552 6566 w (once.) 2761 6566 w (Moreover,) 3030 6566 w (expressions) 3479 6566 w (like) 3976 6566 w (``i =+ p'') 4157 6566 w (in) 4560 6566 w (which) 4669 6566 w (a) 4944 6566 w (pointer) 5019 6566 w (is) 5333 6566 w (added to an integer, are forbidden.) 720 6676 w cleartomark showpage saveobj restore %%EndPage: 8 8 %%Page: 9 9 /saveobj save def mark 9 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 9) 4391 580 w 10 /Times-Roman f (7.15) 720 978 w 10 /Times-Italic f (expression) 945 978 w 10 /Courier f (,) 1397 978 w 10 /Times-Italic f (expression) 1482 978 w 10 /Times-Roman f (A) 820 1110 w (pair) 924 1110 w (of) 1111 1110 w (expressions) 1226 1110 w (separated) 1724 1110 w (by) 2132 1110 w (a) 2264 1110 w (comma) 2340 1110 w (is) 2666 1110 w (evaluated) 2765 1110 w (left\255to\255right) 3179 1110 w (and) 3677 1110 w (the) 3853 1110 w (value) 4007 1110 w (of) 4255 1110 w (the) 4370 1110 w (left) 4524 1110 w (expression) 4690 1110 w (is) 5150 1110 w (dis\255) 5250 1110 w (carded.) 720 1220 w (The) 1068 1220 w (type) 1256 1220 w (and) 1461 1220 w (value) 1638 1220 w (of) 1887 1220 w (the) 2003 1220 w (result) 2158 1220 w (are) 2413 1220 w (the) 2567 1220 w (type) 2722 1220 w (and) 2927 1220 w (value) 3104 1220 w (of) 3352 1220 w (the) 3467 1220 w (right) 3621 1220 w (operand.) 3842 1220 w (This) 4245 1220 w (operator) 4455 1220 w (groups) 4819 1220 w (left\255to\255) 5123 1220 w (right.) 720 1330 w (It) 988 1330 w (should) 1079 1330 w (be) 1376 1330 w (avoided) 1500 1330 w (in) 1846 1330 w (situations) 1954 1330 w (where) 2368 1330 w (comma) 2641 1330 w (is) 2965 1330 w (given) 3062 1330 w (a) 3314 1330 w (special) 3388 1330 w (meaning,) 3695 1330 w (for) 4094 1330 w (example) 4240 1330 w (in) 4608 1330 w (actual) 4716 1330 w (arguments) 4984 1330 w (to function calls \(\2477.1.6\) and lists of initializers \(\24710.2\).) 720 1440 w 10 /Courier f (8.) 720 1715 w (Declarations) 960 1715 w 10 /Times-Roman f (Declarations) 820 1847 w (are) 1360 1847 w (used) 1517 1847 w (within) 1737 1847 w (function) 2030 1847 w (definitions) 2400 1847 w (to) 2865 1847 w (specify) 2980 1847 w (the) 3305 1847 w (interpretation) 3464 1847 w (which) 4039 1847 w (C) 4320 1847 w (gives) 4424 1847 w (to) 4672 1847 w (each) 4787 1847 w (identifier;) 5006 1847 w (they do not necessarily reserve storage associated with the identifier.) 720 1957 w (Declarations have the form) 3514 1957 w 10 /Times-Italic f (declaration:) 1080 2144 w (decl\255specifiers declarator\255list) 1440 2254 w 6 /Times-Italic f (opt) 2625 2284 w 10 /Courier f (;) 2752 2254 w 10 /Times-Roman f (The) 720 2441 w (declarators) 911 2441 w (in) 1384 2441 w (the) 1498 2441 w (declarator\255list) 1656 2441 w (contain) 2246 2441 w (the) 2576 2441 w (identifiers) 2734 2441 w (being) 3175 2441 w (declared.) 3433 2441 w (The) 3856 2441 w (decl\255specifiers) 4047 2441 w (consist) 4664 2441 w (of) 4978 2441 w (at) 5097 2441 w (most) 5205 2441 w (one type\255specifier and at most one storage class specifier.) 720 2551 w 10 /Times-Italic f (decl\255specifiers:) 1080 2738 w (type\255specifier) 1440 2848 w (sc\255specifier) 1440 2958 w (type\255specifier sc\255specifier) 1440 3068 w (sc\255specifier type\255specifier) 1440 3178 w 10 /Times-Roman f (8.1) 720 3365 w (Storage class specifiers) 895 3365 w (The sc\255specifiers are:) 820 3497 w 10 /Times-Italic f (sc\255specifier:) 1080 3684 w 10 /Courier f (auto) 1440 3794 w (static) 1440 3904 w (extern) 1440 4014 w (register) 1440 4124 w 10 /Times-Roman f (The) 720 4311 w 10 /Courier f (auto,) 946 4311 w (static,) 1317 4311 w 10 /Times-Roman f (and) 1773 4311 w 10 /Courier f (register) 1988 4311 w 10 /Times-Roman f (declarations) 2504 4311 w (also) 3022 4311 w (serve) 3219 4311 w (as) 3465 4311 w (definitions) 3584 4311 w (in) 4048 4311 w (that) 4162 4311 w (they) 4348 4311 w (cause) 4557 4311 w (an) 4815 4311 w (appropriate) 4946 4311 w (amount) 720 4421 w (of) 1047 4421 w (storage) 1157 4421 w (to) 1472 4421 w (be) 1577 4421 w (reserved.) 1698 4421 w (In) 2111 4421 w (the) 2220 4421 w 10 /Courier f (extern) 2368 4421 w 10 /Times-Roman f (case) 2754 4421 w (there) 2951 4421 w (must) 3176 4421 w (be) 3397 4421 w (an) 3517 4421 w (external) 3637 4421 w (definition) 3984 4421 w (\(see) 4399 4421 w (below\)) 4585 4421 w (for) 4888 4421 w (the) 5030 4421 w (given) 5178 4421 w (identifiers somewhere outside the function in which they are declared.) 720 4531 w (There) 820 4685 w (are) 1087 4685 w (some) 1243 4685 w (severe) 1489 4685 w (restrictions) 1778 4685 w (on) 2257 4685 w 10 /Courier f (register) 2427 4685 w 10 /Times-Roman f (identifiers:) 2942 4685 w (there) 3410 4685 w (can) 3644 4685 w (be) 3817 4685 w (at) 3946 4685 w (most) 4053 4685 w (3) 4283 4685 w (register) 4368 4685 w (identifiers) 4702 4685 w (in) 5142 4685 w (any) 5256 4685 w (function,) 720 4795 w (and) 1104 4795 w (the) 1274 4795 w (type) 1422 4795 w (of) 1620 4795 w (a) 1729 4795 w (register) 1799 4795 w (identifier) 2124 4795 w (can) 2516 4795 w (only) 2680 4795 w (be) 2884 4795 w 10 /Courier f (int,) 3039 4795 w (char,) 3340 4795 w 10 /Times-Roman f (or) 3666 4795 w (pointer) 3775 4795 w (\(not) 4084 4795 w 10 /Courier f (float,) 4306 4795 w (double,) 4727 4795 w 10 /Times-Roman f (struc\255) 5173 4795 w (ture,) 720 4905 w (function,) 930 4905 w (or) 1318 4905 w (array\).) 1431 4905 w (Also) 1748 4905 w (the) 1967 4905 w (address\255of) 2119 4905 w (operator) 2564 4905 w 10 /Courier f (&) 2961 4905 w 10 /Times-Roman f (cannot) 3051 4905 w (be) 3347 4905 w (applied) 3471 4905 w (to) 3795 4905 w (such) 3903 4905 w (identifiers.) 4116 4905 w (Except) 4601 4905 w (for) 4908 4905 w (these) 5054 4905 w (re\255) 5290 4905 w (strictions) 720 5015 w (\(in) 1119 5015 w (return) 1262 5015 w (for) 1532 5015 w (which) 1680 5015 w (one) 1956 5015 w (is) 2132 5015 w (rewarded) 2230 5015 w (with) 2631 5015 w (faster,) 2840 5015 w (smaller) 3117 5015 w (code\),) 3442 5015 w (register) 3719 5015 w (identifiers) 4049 5015 w (behave) 4485 5015 w (as) 4798 5015 w (if) 4912 5015 w (they) 5004 5015 w (were) 5207 5015 w (automatic.) 720 5125 w (In fact implementations of C are free to treat) 1189 5125 w 10 /Courier f (register) 3028 5125 w 10 /Times-Roman f (as synonymous with) 3533 5125 w 10 /Courier f (auto.) 4410 5125 w 10 /Times-Roman f (If the sc\255specifier is missing from a declaration, it is generally taken to be) 820 5279 w 10 /Courier f (auto) 3784 5279 w 10 /Times-Roman f (.) 4024 5279 w (8.2) 720 5499 w (Type specifiers) 895 5499 w (The type\255specifiers are) 820 5631 w 10 /Times-Italic f (type\255specifier:) 1080 5818 w 10 /Courier f (int) 1440 5928 w (char) 1440 6038 w (float) 1440 6148 w (double) 1440 6258 w (struct) 1440 6368 w 10 /Times-Italic f ({ type\255decl\255list }) 1860 6368 w 10 /Courier f (struct) 1440 6478 w 10 /Times-Italic f (identifier { type\255decl\255list }) 1860 6478 w 10 /Courier f (struct) 1440 6588 w 10 /Times-Italic f (identifier) 1860 6588 w 10 /Times-Roman f (The) 720 6775 w 10 /Courier f (struct) 904 6775 w 10 /Times-Roman f (specifier) 1293 6775 w (is) 1666 6775 w (discussed) 1763 6775 w (in) 2176 6775 w (\2478.5.) 2284 6775 w (If) 2539 6775 w (the) 2635 6775 w (type\255specifier) 2787 6775 w (is) 3365 6775 w (missing) 3462 6775 w (from) 3804 6775 w (a) 4028 6775 w (declaration,) 4102 6775 w (it) 4600 6775 w (is) 4686 6775 w (generally) 4783 6775 w (taken) 5184 6775 w (to be) 720 6885 w 10 /Courier f (int) 942 6885 w 10 /Times-Roman f (.) 1122 6885 w cleartomark showpage saveobj restore %%EndPage: 9 9 %%Page: 10 10 /saveobj save def mark 10 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 10) 720 580 w 10 /Times-Roman f (8.3) 720 978 w (Declarators) 895 978 w (The declarator\255list appearing in a declaration is a comma\255separated sequence of declarators.) 820 1110 w 10 /Times-Italic f (declarator\255list:) 1080 1297 w (declarator) 1440 1407 w (declarator) 1440 1517 w 10 /Courier f (,) 1887 1517 w 10 /Times-Italic f (declarator\255list) 1972 1517 w 10 /Times-Roman f (The) 720 1704 w (specifiers) 912 1704 w (in) 1332 1704 w (the) 1448 1704 w (declaration) 1608 1704 w (indicate) 2089 1704 w (the) 2443 1704 w (type) 2603 1704 w (and) 2813 1704 w (storage) 2995 1704 w (class) 3321 1704 w (of) 3553 1704 w (the) 3674 1704 w (objects) 3834 1704 w (to) 4155 1704 w (which) 4271 1704 w (the) 4553 1704 w (declarators) 4713 1704 w (refer.) 5188 1704 w (Declarators have the syntax:) 720 1814 w 10 /Times-Italic f (declarator:) 1080 2001 w (identifier) 1440 2111 w 10 /Times-Roman f (*) 1440 2243 w 10 /Times-Italic f (declarator) 1515 2221 w (declarator) 1440 2331 w 10 /Courier f (\( \)) 1887 2331 w 10 /Times-Italic f (declarator) 1440 2441 w 10 /Courier f ([) 1887 2441 w 10 /Times-Italic f (constant\255expression) 2007 2441 w 6 /Times-Italic f (opt) 2806 2471 w 10 /Courier f (]) 2908 2441 w (\() 1440 2551 w 10 /Times-Italic f (declarator) 1560 2551 w 10 /Courier f (\)) 2007 2551 w 10 /Times-Roman f (The grouping in this definition is the same as in expressions.) 720 2738 w (8.4) 720 2958 w (Meaning of declarators) 895 2958 w (Each) 820 3090 w (declarator) 1048 3090 w (is) 1475 3090 w (taken) 1571 3090 w (to) 1816 3090 w (be) 1923 3090 w (an) 2046 3090 w (assertion) 2169 3090 w (that) 2553 3090 w (when) 2732 3090 w (a) 2977 3090 w (construction) 3050 3090 w (of) 3573 3090 w (the) 3685 3090 w (same) 3836 3090 w (form) 4071 3090 w (as) 4295 3090 w (the) 4408 3090 w (declarator) 4560 3090 w (appears) 4988 3090 w (in) 5322 3090 w (an) 720 3200 w (expression,) 840 3200 w (it) 1318 3200 w (yields) 1400 3200 w (an) 1665 3200 w (object) 1785 3200 w (of) 2055 3200 w (the) 2164 3200 w (indicated) 2312 3200 w (type and storage class.) 2704 3200 w (Each declarator contains exactly one identi\255) 3652 3200 w (fier; it is this identifier that is declared.) 720 3310 w (If) 820 3464 w (an) 912 3464 w (unadorned) 1033 3464 w (identifier) 1481 3464 w (appears) 1874 3464 w (as) 2205 3464 w (a) 2315 3464 w (declarator,) 2386 3464 w (then) 2836 3464 w (it) 3035 3464 w (has) 3118 3464 w (the) 3278 3464 w (type) 3427 3464 w (indicated) 3626 3464 w (by) 4019 3464 w (the) 4146 3464 w (specifier) 4295 3464 w (heading) 4665 3464 w (the) 5008 3464 w (decla\255) 5157 3464 w (ration.) 720 3574 w (If a declarator has the form) 820 3728 w (*) 1080 3937 w (D) 1155 3915 w (for) 720 4102 w (D) 870 4102 w (a) 976 4102 w (declarator,) 1054 4102 w (then) 1511 4102 w (the) 1717 4102 w (contained) 1873 4102 w (identifier) 2295 4102 w (has) 2695 4102 w (the) 2862 4102 w (type) 3018 4102 w (``pointer) 3224 4102 w (to) 3607 4102 w (.) 3719 4102 w (.) 3760 4102 w (.'',) 3801 4102 w (where) 3951 4102 w (``) 4228 4102 w (.) 4310 4102 w (.) 4351 4102 w (.) 4392 4102 w ('') 4433 4102 w (is) 4533 4102 w (the) 4635 4102 w (type) 4792 4102 w (which) 4999 4102 w (the) 5278 4102 w (identifier would have had if the declarator had been simply D.) 720 4212 w (If a declarator has the form) 820 4366 w (D) 1080 4553 w (\() 1168 4553 w (\)) 1233 4553 w (then) 720 4740 w (the) 931 4740 w (contained) 1092 4740 w (identifier) 1519 4740 w (has) 1924 4740 w (the) 2096 4740 w (type) 2257 4740 w (``function) 2468 4740 w (returning) 2906 4740 w (...'',) 3311 4740 w (where) 3516 4740 w (``) 3798 4740 w (.) 3880 4740 w (.) 3921 4740 w (.) 3962 4740 w ('') 4003 4740 w (is) 4108 4740 w (the) 4214 4740 w (type) 4376 4740 w (which) 4588 4740 w (the) 4872 4740 w (identifier) 5034 4740 w (would have had if the declarator had been simply D.) 720 4850 w (A declarator may have the form) 820 5004 w (D[constant\255expression]) 1080 5191 w (or) 720 5334 w (D[) 1080 5477 w (]) 1217 5477 w (In) 720 5664 w (the) 837 5664 w (first) 993 5664 w (case) 1188 5664 w (the) 1393 5664 w (constant) 1549 5664 w (expression) 1916 5664 w (is) 2377 5664 w (an) 2478 5664 w (expression) 2606 5664 w (whose) 3067 5664 w (value) 3356 5664 w (is) 3606 5664 w (determinable) 3708 5664 w (at) 4264 5664 w (compile) 4371 5664 w (time,) 4728 5664 w (and) 4966 5664 w (whose) 5145 5664 w (type) 720 5774 w (is) 927 5774 w 10 /Courier f (int.) 1064 5774 w 10 /Times-Roman f (in) 1364 5774 w (the) 1477 5774 w (second) 1634 5774 w (the) 1946 5774 w (constant) 2103 5774 w (1) 2471 5774 w (is) 2556 5774 w (used.) 2658 5774 w (\(Constant) 2926 5774 w (expressions) 3350 5774 w (are) 3851 5774 w (defined) 4007 5774 w (precisely) 4341 5774 w (in) 4736 5774 w (\24715.\)) 4848 5774 w (Such) 5122 5774 w (a) 5356 5774 w (declarator) 720 5884 w (makes) 1153 5884 w (the) 1443 5884 w (contained) 1600 5884 w (identifier) 2023 5884 w (have) 2424 5884 w (type) 2647 5884 w (``array.'') 2854 5884 w (If) 3275 5884 w (the) 3376 5884 w (unadorned) 3533 5884 w (declarator) 3989 5884 w (D) 4422 5884 w (would) 4529 5884 w (specify) 4814 5884 w (a) 5137 5884 w (non\255) 5217 5884 w (array) 720 5994 w (of) 950 5994 w (type) 1059 5994 w (``.) 1257 5994 w (.) 1364 5994 w (.'',) 1405 5994 w (then) 1547 5994 w (the) 1745 5994 w (declarator) 1893 5994 w (``D[) 2317 5994 w (i) 2504 5994 w (]'') 2548 5994 w (yields) 2673 5994 w (a) 2938 5994 w (1\255dimensional) 3008 5994 w (array) 3606 5994 w (with) 3836 5994 w (rank) 4040 5994 w 10 /Times-Italic f (i) 4243 5994 w 10 /Times-Roman f (of) 4297 5994 w (objects) 4406 5994 w (of type ``.) 4715 5994 w (.) 5127 5994 w (.''.) 5168 5994 w (If) 5334 5994 w (the) 720 6104 w (unadorned) 886 6104 w (declarator) 1352 6104 w (D) 1795 6104 w (would) 1912 6104 w (specify) 2207 6104 w (an) 2540 6104 w 10 /Times-Italic f (n) 2679 6104 w 10 /Times-Roman f (\255dimensional) 2745 6104 w (array) 3312 6104 w (with) 3561 6104 w (rank) 3784 6104 w 10 /Times-Italic f (i) 4006 6104 w 6 /Times-Italic f (1) 4034 6134 w 10 /S f (\264) 4080 6104 w 10 /Times-Italic f (i) 4151 6104 w 6 /Times-Italic f (2) 4179 6134 w 10 /S f (\264) 4225 6104 w 10 /Times-Italic f (.) 4296 6104 w (.) 4337 6104 w (.) 4378 6104 w 10 /S f (\264) 4419 6104 w 10 /Times-Italic f (i) 4490 6104 w 6 /Times-Italic f (n) 4518 6134 w 10 /Times-Italic f (,) 4548 6104 w 10 /Times-Roman f (then) 4618 6104 w (the) 4835 6104 w (declarator) 5002 6104 w (``D[) 720 6214 w (i) 907 6214 w 6 /Times-Roman f (n+1) 935 6244 w 10 /Times-Roman f (]'' yields an \() 1045 6214 w 10 /Times-Italic f (n) 1585 6214 w 10 /Times-Roman f (+1) 1651 6214 w (\)) 1773 6214 w (\255dimensional array with rank) 1822 6214 w 10 /Times-Italic f (i) 3003 6214 w 6 /Times-Italic f (1) 3031 6244 w 10 /S f (\264) 3077 6214 w 10 /Times-Italic f (i) 3148 6214 w 6 /Times-Italic f (2) 3176 6244 w 10 /S f (\264) 3222 6214 w 10 /Times-Italic f (.) 3293 6214 w (.) 3334 6214 w (.) 3375 6214 w 10 /S f (\264) 3416 6214 w 10 /Times-Italic f (i) 3487 6214 w 6 /Times-Italic f (n) 3515 6244 w 10 /S f (\264) 3561 6214 w 10 /Times-Italic f (i) 3632 6214 w 6 /Times-Italic f (n+1) 3660 6244 w 10 /Times-Roman f (.) 3761 6214 w (An) 820 6368 w (array) 972 6368 w (may) 1206 6368 w (be) 1408 6368 w (constructed) 1532 6368 w (from) 2022 6368 w (one) 2246 6368 w (of) 2420 6368 w (the) 2533 6368 w (basic) 2685 6368 w (types,) 2920 6368 w (from) 3186 6368 w (a) 3410 6368 w (pointer,) 3484 6368 w (from) 3822 6368 w (a) 4047 6368 w (structure,) 4122 6368 w (or) 4527 6368 w (from) 4641 6368 w (another) 4866 6368 w (array) 5196 6368 w (\(to generate a multi\255dimensional array\).) 720 6478 w (Finally,) 820 6632 w (parentheses) 1159 6632 w (in) 1654 6632 w (declarators) 1762 6632 w (do) 2229 6632 w (not) 2359 6632 w (alter) 2517 6632 w (the) 2724 6632 w (type) 2876 6632 w (of) 3078 6632 w (the) 3191 6632 w (contained) 3343 6632 w (identifier) 3761 6632 w (except) 4157 6632 w (insofar) 4447 6632 w (as) 4754 6632 w (they) 4867 6632 w (alter) 5070 6632 w (the) 5278 6632 w (binding of the components of the declarator.) 720 6742 w (Not) 820 6896 w (all) 998 6896 w (the) 1126 6896 w (possibilities) 1276 6896 w (allowed) 1783 6896 w (by) 2127 6896 w (the) 2255 6896 w (syntax) 2405 6896 w (above) 2694 6896 w (are) 2960 6896 w (actually) 3109 6896 w (permitted.) 3453 6896 w (The) 3914 6896 w (restrictions) 4098 6896 w (are) 4571 6896 w (as) 4721 6896 w (follows:) 4833 6896 w (func\255) 5190 6896 w (tions) 720 7006 w (may) 941 7006 w (not) 1139 7006 w (return) 1293 7006 w (arrays,) 1557 7006 w (structures) 1851 7006 w (or) 2265 7006 w (functions,) 2374 7006 w (although) 2797 7006 w (they) 3173 7006 w (may) 3371 7006 w (return) 3569 7006 w (pointers) 3833 7006 w (to) 4181 7006 w (such) 4285 7006 w (things;) 4494 7006 w (there) 4793 7006 w (are) 5018 7006 w (no ar\255) 5165 7006 w (rays) 720 7116 w (of) 923 7116 w (functions,) 1043 7116 w (although) 1477 7116 w (there) 1864 7116 w (may) 2100 7116 w (be) 2309 7116 w (arrays) 2440 7116 w (of) 2720 7116 w (pointers) 2840 7116 w (to) 3199 7116 w (functions.) 3315 7116 w (Likewise) 3775 7116 w (a) 4179 7116 w (structure) 4261 7116 w (may) 4648 7116 w (not) 4858 7116 w (contain) 5024 7116 w (a) 5356 7116 w (function, but it may contain a pointer to a function.) 720 7226 w cleartomark showpage saveobj restore %%EndPage: 10 10 %%Page: 11 11 /saveobj save def mark 11 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 11) 4341 580 w 10 /Times-Roman f (As an example, the declaration) 820 978 w 10 /Courier f (int i,) 1080 1165 w 10 /Times-Roman f (*) 1500 1187 w 10 /Courier f (ip, f) 1550 1165 w (\() 1866 1165 w (\),) 1958 1165 w 10 /Times-Roman f (*) 2138 1187 w 10 /Courier f (fip\() 2188 1165 w (\), \() 2460 1165 w 10 /Times-Roman f (*) 2700 1187 w 10 /Courier f (pfi\)) 2750 1165 w (\() 3006 1165 w (\);) 3098 1165 w 10 /Times-Roman f (declares) 720 1352 w (an) 1074 1352 w (integer) 1196 1352 w 10 /Times-Italic f (i) 1501 1352 w 10 /Times-Roman f (,) 1529 1352 w (a) 1582 1352 w (pointer) 1654 1352 w 10 /Times-Italic f (ip) 1965 1352 w 10 /Times-Roman f (to) 2071 1352 w (an) 2177 1352 w (integer,) 2300 1352 w (a) 2631 1352 w (function) 2704 1352 w 10 /Times-Italic f (f) 3066 1352 w 10 /Times-Roman f (returning) 3123 1352 w (an) 3518 1352 w (integer,) 3641 1352 w (a) 3972 1352 w (function) 4045 1352 w 10 /Times-Italic f (fip) 4407 1352 w 10 /Times-Roman f (returning) 4542 1352 w (a) 4937 1352 w (pointer) 5010 1352 w (to) 5322 1352 w (an integer, and a pointer) 720 1462 w 10 /Times-Italic f (pfi) 1712 1462 w 10 /Times-Roman f (to a function which returns an integer.) 1843 1462 w (Also) 3415 1462 w 10 /Courier f (float fa[17],) 1080 1649 w 10 /Times-Roman f (*) 1920 1671 w 10 /Courier f (afp[17];) 1970 1649 w 10 /Times-Roman f (declares an array of) 720 1836 w 10 /Courier f (float) 1527 1836 w 10 /Times-Roman f (numbers and an array of pointers to) 1852 1836 w 10 /Courier f (float) 3296 1836 w 10 /Times-Roman f (numbers.) 3621 1836 w (Finally,) 4040 1836 w 10 /Courier f (static int x3d[3][5][7];) 1080 2023 w 10 /Times-Roman f (declares) 720 2210 w (a) 1079 2210 w (static) 1156 2210 w (three\255dimensional) 1400 2210 w (array) 2154 2210 w (of) 2391 2210 w (integers,) 2507 2210 w (with) 2881 2210 w (rank) 3092 2210 w (3) 3302 2210 w 10 /S f (\264) 3352 2210 w 10 /Times-Roman f (5) 3407 2210 w 10 /S f (\264) 3457 2210 w 10 /Times-Roman f (7.) 3512 2210 w (In) 3645 2210 w (complete) 3761 2210 w (detail,) 4160 2210 w 10 /Times-Italic f (x3d) 4440 2210 w 10 /Times-Roman f (is) 4617 2210 w (an) 4718 2210 w (array) 4846 2210 w (of) 5084 2210 w (three) 5201 2210 w (items:) 720 2320 w (each) 994 2320 w (item) 1205 2320 w (is) 1412 2320 w (an) 1508 2320 w (array) 1631 2320 w (of) 1864 2320 w (five) 1976 2320 w (arrays;) 2160 2320 w (each) 2460 2320 w (of) 2671 2320 w (the) 2783 2320 w (latter) 2933 2320 w (arrays) 3166 2320 w (is) 3437 2320 w (an) 3532 2320 w (array) 3654 2320 w (of) 3886 2320 w (seven) 3997 2320 w (integers.) 4252 2320 w (Any) 4646 2320 w (of) 4846 2320 w (the) 4957 2320 w (expres\255) 5107 2320 w (sions) 720 2430 w (``x3d'',) 961 2430 w (``x3d[) 1303 2430 w (i) 1568 2430 w (]'',) 1612 2430 w (``x3d[) 1771 2430 w (i) 2036 2430 w (][) 2080 2430 w (j) 2162 2430 w (]'',) 2206 2430 w (``x3d[) 2365 2430 w (i) 2630 2430 w (][) 2674 2430 w (j) 2756 2430 w (][) 2800 2430 w (k) 2882 2430 w (]'') 2948 2430 w (may) 3082 2430 w (reasonably) 3289 2430 w (appear) 3756 2430 w (in) 4056 2430 w (an) 4170 2430 w (expression.) 4300 2430 w (The) 4813 2430 w (first) 5004 2430 w (three) 5201 2430 w (have type ``array'', the last has type) 720 2540 w 10 /Courier f (int) 2182 2540 w 10 /Times-Roman f (.) 2362 2540 w (8.5) 720 2760 w (Structure declarations) 895 2760 w (Recall that one of the forms for a structure specifier is) 820 2892 w 10 /Courier f (struct) 1440 3079 w 10 /Times-Italic f ({ type\255decl\255list }) 1860 3079 w 10 /Times-Roman f (The) 720 3266 w 10 /Times-Italic f (type\255decl\255list) 900 3266 w 10 /Times-Roman f (is a sequence of type declarations for the members of the structure:) 1446 3266 w 10 /Times-Italic f (type\255decl\255list:) 1080 3453 w (type\255declaration) 1440 3563 w (type\255declaration type\255decl\255list) 1440 3673 w 10 /Times-Roman f (A) 720 3860 w (type) 820 3860 w (declaration) 1020 3860 w (is) 1491 3860 w (just) 1586 3860 w (a) 1759 3860 w (declaration) 1831 3860 w (which) 2303 3860 w (does) 2576 3860 w (not) 2788 3860 w (mention) 2945 3860 w (a) 3302 3860 w (storage) 3375 3860 w (class) 3692 3860 w (\(the) 3915 3860 w (storage) 4099 3860 w (class) 4416 3860 w (``member) 4639 3860 w (of) 5061 3860 w (struc\255) 5173 3860 w (ture'' here being understood by context\).) 720 3970 w 10 /Times-Italic f (type\255declaration:) 1080 4157 w (type\255specifier declarator\255list) 1440 4267 w 10 /Courier f (;) 2636 4267 w 10 /Times-Roman f (Within) 720 4454 w (the) 1030 4454 w (structure,) 1184 4454 w (the) 1591 4454 w (objects) 1746 4454 w (declared) 2062 4454 w (have) 2432 4454 w (addresses) 2653 4454 w (which) 3068 4454 w (increase) 3345 4454 w (as) 3704 4454 w (their) 3820 4454 w (declarations) 4036 4454 w (are) 4551 4454 w (read) 4705 4454 w (left\255to\255right.) 4909 4454 w (Each) 720 4564 w (component) 947 4564 w (of) 1419 4564 w (a) 1530 4564 w (structure) 1602 4564 w (begins) 1979 4564 w (on) 2267 4564 w (an) 2394 4564 w (addressing) 2515 4564 w (boundary) 2969 4564 w (appropriate) 3373 4564 w (to) 3854 4564 w (its) 3959 4564 w (type.) 4081 4564 w (On) 4330 4564 w (the) 4479 4564 w 8 /Times-Roman f (PDP) 4628 4564 w 10 /Times-Roman f (\25511) 4776 4564 w (the) 4936 4564 w (only) 5085 4564 w (re\255) 5290 4564 w (quirement) 720 4674 w (is) 1164 4674 w (that) 1270 4674 w (non\255characters) 1459 4674 w (begin) 2084 4674 w (on) 2345 4674 w (a) 2484 4674 w (word) 2567 4674 w (boundary;) 2811 4674 w (therefore,) 3255 4674 w (there) 3678 4674 w (may) 3916 4674 w (be) 4127 4674 w (1\255byte,) 4261 4674 w (unnamed) 4581 4674 w (holes) 4987 4674 w (in) 5238 4674 w (a) 5356 4674 w (structure, and all structures have an even length in bytes.) 720 4784 w (Another form of structure specifier is) 820 4938 w 10 /Courier f (struct) 1440 5125 w 10 /Times-Italic f (identifier { type\255decl\255list }) 1860 5125 w 10 /Times-Roman f (This) 720 5312 w (form) 928 5312 w (is) 1153 5312 w (the) 1251 5312 w (same) 1404 5312 w (as) 1640 5312 w (the) 1754 5312 w (one) 1907 5312 w (just) 2082 5312 w (discussed,) 2258 5312 w (except) 2697 5312 w (that) 2988 5312 w (the) 3169 5312 w (identifier) 3322 5312 w (is) 3719 5312 w (remembered) 3817 5312 w (as) 4346 5312 w (the) 4460 5312 w 10 /Times-Italic f (structure) 4613 5312 w (tag) 5005 5312 w 10 /Times-Roman f (of) 5164 5312 w (the) 5278 5312 w (structure) 720 5422 w (specified) 1102 5422 w (by) 1495 5422 w (the) 1628 5422 w (list.) 1783 5422 w (A) 1989 5422 w (subsequent) 2094 5422 w (declaration) 2571 5422 w (may) 3047 5422 w (then) 3252 5422 w (be) 3457 5422 w (given) 3584 5422 w (using) 3839 5422 w (the) 4089 5422 w (structure) 4244 5422 w (tag) 4626 5422 w (but) 4780 5422 w (without) 4940 5422 w (the) 5278 5422 w (list, as in the third form of structure specifier:) 720 5532 w 10 /Courier f (struct) 1440 5719 w 10 /Times-Italic f (identifier) 1860 5719 w 10 /Times-Roman f (Structure) 720 5906 w (tags) 1120 5906 w (allow) 1315 5906 w (definition) 1571 5906 w (of) 1994 5906 w (self\255referential) 2111 5906 w (structures;) 2731 5906 w (they) 3181 5906 w (also) 3388 5906 w (permit) 3584 5906 w (the) 3880 5906 w (long) 4037 5906 w (part) 4250 5906 w (of) 4440 5906 w (the) 4558 5906 w (declaration) 4715 5906 w (to) 5193 5906 w (be) 5306 5906 w (given) 720 6016 w (once) 968 6016 w (and) 1182 6016 w (used) 1352 6016 w (several) 1561 6016 w (times.) 1869 6016 w (It) 2162 6016 w (is) 2249 6016 w (however) 2342 6016 w (absurd) 2711 6016 w (to declare a structure which contains an instance of itself, as) 3003 6016 w (distinct from a pointer to an instance of itself.) 720 6126 w (A simple example of a structure declaration, taken from \24716.2 where its use is illustrated more fully, is) 820 6280 w 10 /Courier f (struct tnode {) 1080 6467 w (char tword[20];) 1440 6577 w (int count;) 1440 6687 w (struct tnode) 1440 6797 w 10 /Times-Roman f (*) 2220 6819 w 10 /Courier f (left;) 2270 6797 w (struct tnode) 1440 6907 w 10 /Times-Roman f (*) 2220 6929 w 10 /Courier f (right;) 2270 6907 w (};) 1080 7017 w 10 /Times-Roman f (which contains an array of 20 characters, an integer, and two pointers) 720 7204 w (to) 3519 7204 w (similar) 3623 7204 w (structures.) 3927 7204 w (Once) 4391 7204 w (this) 4627 7204 w (declaration) 4798 7204 w (has) 5267 7204 w cleartomark showpage saveobj restore %%EndPage: 11 11 %%Page: 12 12 /saveobj save def mark 12 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 12) 720 580 w 10 /Times-Roman f (been given, the following declaration makes sense:) 720 978 w 10 /Courier f (struct tnode s,) 1080 1165 w 10 /Times-Roman f (*) 2040 1187 w 10 /Courier f (sp;) 2090 1165 w 10 /Times-Roman f (which declares) 720 1352 w 10 /Times-Italic f (s) 1340 1352 w 10 /Times-Roman f (to be a structure of the given sort and) 1404 1352 w 10 /Times-Italic f (sp) 2915 1352 w 10 /Times-Roman f (to be a pointer to a structure of the given sort.) 3029 1352 w (The) 820 1506 w (names) 1003 1506 w (of) 1286 1506 w (structure) 1397 1506 w (members) 1774 1506 w (and) 2168 1506 w (structure) 2340 1506 w (tags) 2717 1506 w (may) 2906 1506 w (be) 3106 1506 w (the) 3228 1506 w (same) 3378 1506 w (as) 3611 1506 w (ordinary) 3722 1506 w (variables,) 4089 1506 w (since) 4503 1506 w (a) 4737 1506 w (distinction) 4810 1506 w (can) 5262 1506 w (be) 720 1616 w (made) 841 1616 w (by) 1084 1616 w (context.) 1211 1616 w (However,) 1582 1616 w (names) 1999 1616 w (of) 2281 1616 w (tags) 2391 1616 w (and) 2579 1616 w (members) 2750 1616 w (must) 3143 1616 w (be) 3365 1616 w (distinct.) 3486 1616 w (The) 3858 1616 w (same) 4040 1616 w (member) 4272 1616 w (name) 4625 1616 w (can) 4867 1616 w (appear) 5031 1616 w (in) 5322 1616 w (different) 720 1726 w (structures) 1091 1726 w (only) 1507 1726 w (if) 1713 1726 w (the) 1802 1726 w (two) 1953 1726 w (members) 2132 1726 w (are) 2527 1726 w (of) 2677 1726 w (the) 2789 1726 w (same) 2940 1726 w (type) 3174 1726 w (and) 3375 1726 w (if) 3548 1726 w (their) 3638 1726 w (origin) 3850 1726 w (with) 4118 1726 w (respect) 4325 1726 w (to) 4636 1726 w (their) 4743 1726 w (structure) 4955 1726 w (is) 5333 1726 w (the same; thus separate structures can share a common initial segment.) 720 1836 w 10 /Courier f (9.) 720 2111 w (Statements) 960 2111 w 10 /Times-Roman f (Except as indicated, statements are executed in sequence.) 820 2243 w (9.1) 720 2463 w (Expression statement) 895 2463 w (Most statements are expression statements, which have the form) 820 2595 w 10 /Times-Italic f (expression) 1080 2782 w 10 /Courier f (;) 1532 2782 w 10 /Times-Roman f (Usually expression statements are assignments or function calls.) 720 2969 w (9.2) 720 3189 w (Compound statement) 895 3189 w (So that several statements can be used where one is expected, the compound statement is provided:) 820 3321 w 10 /Times-Italic f (compound\255statement:) 1080 3508 w ({ statement\255list }) 1440 3618 w (statement\255list:) 1080 3838 w (statement) 1440 3948 w (statement statement\255list) 1440 4058 w 10 /Times-Roman f (9.3) 720 4245 w (Conditional statement) 895 4245 w (The two forms of the conditional statement are) 820 4377 w 10 /Courier f (if \() 1080 4564 w 10 /Times-Italic f (expression) 1380 4564 w 10 /Courier f (\)) 1832 4564 w 10 /Times-Italic f (statement) 1952 4564 w 10 /Courier f (if \() 1080 4674 w 10 /Times-Italic f (expression) 1380 4674 w 10 /Courier f (\)) 1832 4674 w 10 /Times-Italic f (statement) 1952 4674 w 10 /Courier f (else) 2360 4674 w 10 /Times-Italic f (statement) 2660 4674 w 10 /Times-Roman f (In) 720 4861 w (both) 831 4861 w (cases) 1037 4861 w (the) 1275 4861 w (expression) 1425 4861 w (is) 1880 4861 w (evaluated) 1976 4861 w (and) 2387 4861 w (if) 2560 4861 w (it) 2650 4861 w (is) 2735 4861 w (non\255zero,) 2831 4861 w (the) 3239 4861 w (first) 3390 4861 w (substatement) 3580 4861 w (is) 4131 4861 w (executed.) 4227 4861 w (In) 4660 4861 w (the) 4772 4861 w (second) 4923 4861 w (case) 5229 4861 w (the) 720 4971 w (second) 869 4971 w (substatement) 1173 4971 w (is) 1722 4971 w (executed) 1816 4971 w (if) 2197 4971 w (the) 2285 4971 w (expression) 2434 4971 w (is) 2888 4971 w (0.) 2982 4971 w (As) 3109 4971 w (usual) 3247 4971 w (the) 3485 4971 w (``else'') 3634 4971 w (ambiguity) 3947 4971 w (is) 4379 4971 w (resolved) 4472 4971 w (by) 4836 4971 w (connecting) 4962 4971 w (an) 720 5081 w 10 /Courier f (else) 839 5081 w 10 /Times-Roman f (with the last encountered elseless) 1104 5081 w 10 /Courier f (if) 2460 5081 w 10 /Times-Roman f (.) 2580 5081 w (9.4) 720 5301 w (While statement) 895 5301 w (The) 820 5433 w 10 /Courier f (while) 1000 5433 w 10 /Times-Roman f (statement has the form) 1325 5433 w 10 /Courier f (while \() 1080 5620 w 10 /Times-Italic f (expression) 1560 5620 w 10 /Courier f (\)) 2012 5620 w 10 /Times-Italic f (statement) 2132 5620 w 10 /Times-Roman f (The) 720 5807 w (substatement) 911 5807 w (is) 1470 5807 w (executed) 1574 5807 w (repeatedly) 1965 5807 w (so) 2417 5807 w (long) 2543 5807 w (as) 2758 5807 w (the) 2878 5807 w (value) 3037 5807 w (of) 3290 5807 w (the) 3410 5807 w (expression) 3569 5807 w (remains) 4033 5807 w (non\255zero.) 4386 5807 w (The) 4827 5807 w (test) 5019 5807 w (takes) 5195 5807 w (place before each execution of the statement.) 720 5917 w (9.5) 720 6137 w (Do statement) 895 6137 w (The) 820 6269 w 10 /Courier f (do) 1000 6269 w 10 /Times-Roman f (statement has the form) 1145 6269 w 10 /Courier f (do) 1080 6456 w 10 /Times-Italic f (statement) 1260 6456 w 10 /Courier f (while \() 1668 6456 w 10 /Times-Italic f (expression) 2148 6456 w 10 /Courier f (\) ;) 2600 6456 w 10 /Times-Roman f (The) 720 6643 w (substatement) 907 6643 w (is) 1461 6643 w (executed) 1560 6643 w (repeatedly) 1946 6643 w (until) 2393 6643 w (the) 2609 6643 w (value) 2763 6643 w (of) 3011 6643 w (the) 3126 6643 w (expression) 3281 6643 w (becomes) 3741 6643 w (zero.) 4123 6643 w (The) 4377 6643 w (test) 4565 6643 w (takes) 4737 6643 w (place) 4975 6643 w (after) 5218 6643 w (each execution of the statement.) 720 6753 w cleartomark showpage saveobj restore %%EndPage: 12 12 %%Page: 13 13 /saveobj save def mark 13 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 13) 4341 580 w 10 /Times-Roman f (9.6) 720 978 w (For statement) 895 978 w (The) 820 1110 w 10 /Courier f (for) 1000 1110 w 10 /Times-Roman f (statement has the form) 1205 1110 w 10 /Courier f (for \() 1080 1297 w 10 /Times-Italic f (expression\2551) 1440 1297 w 6 /Times-Italic f (opt) 1950 1327 w 10 /Courier f (;) 2052 1297 w 10 /Times-Italic f (expression\2552) 2172 1297 w 6 /Times-Italic f (opt) 2682 1327 w 10 /Courier f (;) 2844 1297 w 10 /Times-Italic f (expression\2553) 2964 1297 w 6 /Times-Italic f (opt) 3474 1327 w 10 /Courier f (\)) 3576 1297 w 10 /Times-Italic f (statement) 3696 1297 w 10 /Times-Roman f (This statement is equivalent to) 720 1484 w 10 /Times-Italic f (expression\2551;) 1080 1671 w 10 /Courier f (while \() 1080 1781 w 10 /Times-Italic f (expression\2552) 1516 1781 w 10 /Courier f (\) {) 2042 1781 w 10 /Times-Italic f (statement) 1440 1891 w (expression\2553) 1440 2001 w 10 /Courier f (;) 1966 2001 w (}) 1080 2111 w 10 /Times-Roman f (Thus) 720 2298 w (the) 949 2298 w (first) 1100 2298 w (expression) 1290 2298 w (specifies) 1746 2298 w (initialization) 2124 2298 w (for) 2660 2298 w (the) 2806 2298 w (loop;) 2958 2298 w (the) 3194 2298 w (second) 3346 2298 w (specifies) 3653 2298 w (a) 4032 2298 w (test,) 4106 2298 w (made) 4300 2298 w (before) 4546 2298 w (each) 4830 2298 w (iteration,) 5042 2298 w (such) 720 2408 w (that) 935 2408 w (the) 1117 2408 w (loop) 1271 2408 w (is) 1481 2408 w (exited) 1580 2408 w (when) 1856 2408 w (the) 2104 2408 w (expression) 2258 2408 w (becomes) 2717 2408 w (0;) 3098 2408 w (the) 3207 2408 w (third) 3360 2408 w (expression) 3580 2408 w (typically) 4038 2408 w (specifies) 4419 2408 w (an) 4799 2408 w (incrementa\255) 4924 2408 w (tion which is performed after each iteration.) 720 2518 w (Any) 820 2672 w (or) 1020 2672 w (all) 1131 2672 w (of) 1259 2672 w (the) 1370 2672 w (expressions) 1520 2672 w (may) 2014 2672 w (be) 2214 2672 w (dropped.) 2337 2672 w (A) 2743 2672 w (missing) 2844 2672 w 10 /Times-Italic f (expression\2552) 3185 2672 w 10 /Times-Roman f (makes) 3724 2672 w (the) 4008 2672 w (implied) 4159 2672 w 10 /Courier f (while) 4494 2672 w 10 /Times-Roman f (clause) 4823 2672 w (equiva\255) 5101 2672 w (lent to ``while\() 720 2782 w (1) 1335 2782 w (\)''; other missing expressions are simply dropped from the expansion above.) 1401 2782 w (9.7) 720 3002 w (Switch statement) 895 3002 w (The) 820 3134 w 10 /Courier f (switch) 1002 3134 w 10 /Times-Roman f (statement) 1389 3134 w (causes) 1799 3134 w (control) 2086 3134 w (to) 2396 3134 w (be) 2501 3134 w (transferred) 2622 3134 w (to) 3080 3134 w (one) 3186 3134 w (of) 3358 3134 w (several) 3469 3134 w (statements) 3779 3134 w (depending) 4229 3134 w (on) 4673 3134 w (the) 4801 3134 w (value) 4951 3134 w (of) 5195 3134 w (an) 5306 3134 w (expression.) 720 3244 w (It has the form) 1222 3244 w 10 /Courier f (switch \() 1080 3431 w 10 /Times-Italic f (expression) 1620 3431 w 10 /Courier f (\)) 2072 3431 w 10 /Times-Italic f (statement) 2192 3431 w 10 /Times-Roman f (The) 720 3618 w (expression) 905 3618 w (must) 1362 3618 w (be) 1587 3618 w 10 /Courier f (int) 1711 3618 w 10 /Times-Roman f (or) 1921 3618 w 10 /Courier f (char) 2034 3618 w 10 /Times-Roman f (.) 2274 3618 w (The) 2354 3618 w (statement) 2539 3618 w (is) 2952 3618 w (typically) 3049 3618 w (compound.) 3430 3618 w (Each) 3933 3618 w (statement) 4163 3618 w (within) 4577 3618 w (the) 4864 3618 w (statement) 5017 3618 w (may be labelled with case prefixes as follows:) 720 3728 w 10 /Courier f (case) 1080 3915 w 10 /Times-Italic f (constant\255expression) 1380 3915 w 10 /Courier f (:) 2204 3915 w 10 /Times-Roman f (where) 720 4102 w (the) 992 4102 w (constant) 1143 4102 w (expression) 1505 4102 w (must) 1961 4102 w (be) 2185 4102 w 10 /Courier f (int) 2308 4102 w 10 /Times-Roman f (or) 2517 4102 w 10 /Courier f (char) 2630 4102 w 10 /Times-Roman f (.) 2870 4102 w (No) 2950 4102 w (two) 3102 4102 w (of) 3282 4102 w (the) 3395 4102 w (case) 3547 4102 w (constants) 3748 4102 w (in) 4150 4102 w (a) 4258 4102 w (switch) 4332 4102 w (may) 4623 4102 w (have) 4825 4102 w (the) 5043 4102 w (same) 5195 4102 w (value.) 720 4212 w (Constant expressions are precisely defined in \24715.) 1011 4212 w (There may also be at most one statement prefix of the form) 820 4366 w 10 /Courier f (default :) 1080 4553 w 10 /Times-Roman f (When the) 720 4740 w 10 /Courier f (switch) 1130 4740 w 10 /Times-Roman f (statement is executed, its expression is evaluated and compared with each case) 1515 4740 w (constant) 4684 4740 w (in) 5043 4740 w (an) 5147 4740 w (un\255) 5267 4740 w (defined) 720 4850 w (order.) 1048 4850 w (If) 1337 4850 w (one) 1432 4850 w (of) 1605 4850 w (the) 1717 4850 w (case) 1868 4850 w (constants) 2068 4850 w (is) 2469 4850 w (equal) 2565 4850 w (to) 2810 4850 w (the) 2917 4850 w (value) 3068 4850 w (of) 3313 4850 w (the) 3425 4850 w (expression,) 3576 4850 w (control) 4057 4850 w (is) 4369 4850 w (passed) 4465 4850 w (to) 4760 4850 w (the) 4867 4850 w (statement) 5017 4850 w (following) 720 4960 w (the) 1142 4960 w (matched) 1297 4960 w (case) 1668 4960 w (prefix.) 1872 4960 w (If) 2193 4960 w (no) 2292 4960 w (case) 2425 4960 w (constant) 2629 4960 w (matches) 2995 4960 w (the) 3356 4960 w (expression,) 3512 4960 w (and) 3998 4960 w (if) 4176 4960 w (there) 4271 4960 w (is) 4504 4960 w (a) 4605 4960 w 10 /Courier f (default) 4683 4960 w 10 /Times-Roman f (prefix,) 5137 4960 w (control) 720 5070 w (passes) 1030 5070 w (to) 1312 5070 w (the) 1417 5070 w (prefixed) 1565 5070 w (statement.) 1923 5070 w (In) 2382 5070 w (the) 2491 5070 w (absence) 2639 5070 w (of) 2980 5070 w (a) 3089 5070 w 10 /Courier f (default) 3159 5070 w 10 /Times-Roman f (prefix) 3605 5070 w (none) 3869 5070 w (of) 4089 5070 w (the) 4198 5070 w (statements) 4346 5070 w (in) 4794 5070 w (the) 4898 5070 w (switch) 5046 5070 w (is) 5333 5070 w (executed.) 720 5180 w (Case or default prefixes in themselves do not alter the flow of control.) 820 5334 w (9.8) 720 5554 w (Break statement) 895 5554 w (The statement) 820 5686 w 10 /Courier f (break ;) 1080 5873 w 10 /Times-Roman f (causes) 720 6060 w (termination) 1012 6060 w (of) 1505 6060 w (the) 1620 6060 w (smallest) 1775 6060 w (enclosing) 2136 6060 w 10 /Courier f (while) 2552 6060 w 10 /Times-Roman f (,) 2852 6060 w 10 /Courier f (do) 2910 6060 w 10 /Times-Roman f (,) 3030 6060 w 10 /Courier f (for) 3123 6060 w 10 /Times-Roman f (,) 3303 6060 w (or) 3361 6060 w 10 /Courier f (switch) 3477 6060 w 10 /Times-Roman f (statement;) 3870 6060 w (control) 4314 6060 w (passes) 4630 6060 w (to) 4918 6060 w (the) 5029 6060 w (state\255) 5184 6060 w (ment following the terminated statement.) 720 6170 w (9.9) 720 6390 w (Continue statement) 895 6390 w (The statement) 820 6522 w 10 /Courier f (continue ;) 1080 6709 w 10 /Times-Roman f (causes) 720 6896 w (control) 1006 6896 w (to) 1315 6896 w (pass) 1419 6896 w (to) 1617 6896 w (the) 1721 6896 w (loop\255continuation) 1869 6896 w (portion) 2606 6896 w (of) 2921 6896 w (the) 3030 6896 w (smallest) 3178 6896 w (enclosing) 3532 6896 w 10 /Courier f (while) 3941 6896 w 10 /Times-Roman f (,) 4241 6896 w 10 /Courier f (do) 4327 6896 w 10 /Times-Roman f (,) 4447 6896 w (or) 4498 6896 w 10 /Courier f (for) 4607 6896 w 10 /Times-Roman f (statement;) 4813 6896 w (that) 5250 6896 w (is to the end of the loop.) 720 7006 w (More precisely, in each of the statements) 1739 7006 w cleartomark showpage saveobj restore %%EndPage: 13 13 %%Page: 14 14 /saveobj save def mark 14 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 14) 720 580 w 10 /Courier f (while \() 1080 978 w (.) 1532 978 w (.) 1608 978 w (.) 1684 978 w (\) {) 1776 978 w (do {) 2520 978 w (for \() 3960 978 w (.) 4292 978 w (.) 4368 978 w (.) 4444 978 w (\) {) 4536 978 w (.) 1216 1088 w (.) 1292 1088 w (.) 1368 1088 w (.) 2656 1088 w (.) 2732 1088 w (.) 2808 1088 w (.) 4096 1088 w (.) 4172 1088 w (.) 4248 1088 w (contin:) 1080 1198 w (;) 1516 1198 w (contin:) 2520 1198 w (;) 2956 1198 w (contin:) 3960 1198 w (;) 4396 1198 w (}) 1080 1308 w (} while \() 2520 1308 w (.) 3092 1308 w (.) 3168 1308 w (.) 3244 1308 w (\)) 3336 1308 w (;) 3412 1308 w (}) 3960 1308 w 10 /Times-Roman f (a) 720 1495 w 10 /Courier f (continue) 789 1495 w 10 /Times-Roman f (is equivalent to ``goto contin''.) 1294 1495 w (9.10) 720 1715 w (Return statement) 945 1715 w (A function returns to its caller by means of the) 820 1847 w 10 /Courier f (return) 2706 1847 w 10 /Times-Roman f (statement, which has one of the forms) 3091 1847 w 10 /Courier f (return ;) 1080 2034 w (return \() 1080 2144 w 10 /Times-Italic f (expression) 1620 2144 w 10 /Courier f (\) ;) 2072 2144 w 10 /Times-Roman f (In) 720 2331 w (the) 833 2331 w (first) 985 2331 w (case) 1176 2331 w (no) 1377 2331 w (value) 1507 2331 w (is) 1753 2331 w (returned.) 1850 2331 w (In) 2262 2331 w (the) 2376 2331 w (second) 2529 2331 w (case,) 2837 2331 w (the) 3064 2331 w (value) 3217 2331 w (of) 3464 2331 w (the) 3578 2331 w (expression) 3731 2331 w (is) 4189 2331 w (returned) 4287 2331 w (to) 4650 2331 w (the) 4759 2331 w (caller) 4912 2331 w (of) 5164 2331 w (the) 5278 2331 w (function.) 720 2441 w (If) 1129 2441 w (required,) 1221 2441 w (the) 1604 2441 w (expression is converted, as if by assignment, to the type of the function in which it appears.) 1752 2441 w (Flowing off the end of a function is equivalent to a return with no returned value.) 720 2551 w (9.11) 720 2771 w (Goto statement) 945 2771 w (Control may be transferred unconditionally by means of the statement) 820 2903 w 10 /Courier f (goto) 1080 3090 w 10 /Times-Italic f (expression) 1380 3090 w 10 /Courier f (;) 1832 3090 w 10 /Times-Roman f (The) 720 3277 w (expression) 904 3277 w (should) 1360 3277 w (be) 1656 3277 w (a) 1779 3277 w (label) 1852 3277 w (\(\247\2479.12,) 2075 3277 w (14.4\)) 2437 3277 w (or) 2674 3277 w (an) 2786 3277 w (expression) 2909 3277 w (of) 3365 3277 w (type) 3477 3277 w (``pointer) 3678 3277 w (to) 4056 3277 w 10 /Courier f (int) 4163 3277 w 10 /Times-Roman f ('') 4343 3277 w (which) 4438 3277 w (evaluates) 4712 3277 w (to) 5113 3277 w (a) 5221 3277 w (la\255) 5295 3277 w (bel.) 720 3387 w (It) 926 3387 w (is) 1021 3387 w (illegal) 1122 3387 w (to) 1406 3387 w (transfer) 1518 3387 w (to) 1856 3387 w (a) 1968 3387 w (label) 2046 3387 w (not) 2274 3387 w (located) 2436 3387 w (in) 2757 3387 w (the) 2868 3387 w (current) 3023 3387 w (function) 3338 3387 w (unless) 3704 3387 w (some) 3987 3387 w (extra\255language) 4231 3387 w (provision) 4856 3387 w (has) 5267 3387 w (been made to adjust the stack correctly.) 720 3497 w (9.12) 720 3717 w (Labelled statement) 945 3717 w (Any statement may be preceded by label prefixes of the form) 820 3849 w 10 /Times-Italic f (identifier) 1080 4036 w 10 /Courier f (:) 1472 4036 w 10 /Times-Roman f (which serve to declare the identifier as a label.) 720 4223 w (More details on the semantics of labels are given in \24714.4 below.) 2623 4223 w (9.13) 720 4443 w (Null statement) 945 4443 w (The null statement has the form) 820 4575 w 10 /Courier f (;) 1080 4762 w 10 /Times-Roman f (A) 720 4949 w (null) 819 4949 w (statement) 1002 4949 w (is) 1412 4949 w (useful) 1506 4949 w (to) 1777 4949 w (carry) 1882 4949 w (a) 2113 4949 w (label) 2184 4949 w (just) 2405 4949 w (before) 2577 4949 w (the) 2858 4949 w (``}'') 3007 4949 w (of) 3214 4949 w (a) 3324 4949 w (compound) 3395 4949 w (statement) 3844 4949 w (or) 4254 4949 w (to) 4365 4949 w (supply) 4471 4949 w (a) 4766 4949 w (null) 4838 4949 w (body) 5022 4949 w (to) 5250 4949 w (a) 5356 4949 w (looping statement such as) 720 5059 w 10 /Courier f (while) 1775 5059 w 10 /Times-Roman f (.) 2075 5059 w 10 /Courier f (10. External definitions) 720 5334 w 10 /Times-Roman f (A) 820 5466 w (C) 923 5466 w (program) 1021 5466 w (consists) 1390 5466 w (of) 1738 5466 w (a) 1852 5466 w (sequence) 1927 5466 w (of) 2323 5466 w (external) 2437 5466 w (definitions.) 2789 5466 w (External) 3298 5466 w (definitions) 3667 5466 w (may) 4126 5466 w (be) 4329 5466 w (given) 4454 5466 w (for) 4707 5466 w (functions,) 4855 5466 w (for) 5284 5466 w (simple) 720 5576 w (variables,) 1016 5576 w (and) 1430 5576 w (for) 1603 5576 w (arrays.) 1748 5576 w (They) 2070 5576 w (are) 2304 5576 w (used) 2454 5576 w (both) 2666 5576 w (to) 2873 5576 w (declare) 2980 5576 w (and) 3296 5576 w (to) 3469 5576 w (reserve) 3576 5576 w (storage) 3892 5576 w (for) 4208 5576 w (objects.) 4352 5576 w (An) 4713 5576 w (external) 4863 5576 w (defi\255) 5212 5576 w (nition) 720 5686 w (declares) 987 5686 w (an) 1346 5686 w (identifier) 1473 5686 w (to) 1872 5686 w (have) 1983 5686 w (storage) 2204 5686 w (class) 2526 5686 w 10 /Courier f (extern) 2754 5686 w 10 /Times-Roman f (and) 3148 5686 w (a) 3326 5686 w (specified) 3404 5686 w (type.) 3798 5686 w (The) 4054 5686 w (type\255specifier) 4243 5686 w (\(\2478.2\)) 4825 5686 w (may) 5100 5686 w (be) 5306 5686 w (empty, in which case the type is taken to be) 720 5796 w 10 /Courier f (int) 2487 5796 w 10 /Times-Roman f (.) 2667 5796 w (10.1) 720 6016 w (External function definitions) 945 6016 w (Function definitions have the form) 820 6148 w 10 /Times-Italic f (function\255definition:) 1080 6335 w (type\255specifier) 1440 6445 w 6 /Times-Italic f (opt) 1983 6475 w 10 /Times-Italic f (function\255declarator function\255body) 2085 6445 w 10 /Times-Roman f (A function) 720 6632 w (declarator) 1176 6632 w (is) 1600 6632 w (similar) 1693 6632 w (to) 1997 6632 w (a) 2101 6632 w (declarator) 2171 6632 w (for) 2595 6632 w (a) 2737 6632 w (``function) 2807 6632 w (returning) 3232 6632 w (...'') 3624 6632 w (except) 3791 6632 w (that) 4077 6632 w (it) 4253 6632 w (lists) 4335 6632 w (the) 4523 6632 w (formal) 4671 6632 w (parameters) 4963 6632 w (of the function being defined.) 720 6742 w 10 /Times-Italic f (function\255declarator:) 1080 6929 w (declarator) 1440 7039 w 10 /Courier f (\() 1887 7039 w 10 /Times-Italic f (parameter\255list) 2007 7039 w 6 /Times-Italic f (opt) 2579 7069 w 10 /Courier f (\)) 2681 7039 w 10 /Times-Italic f (parameter\255list:) 1080 7259 w cleartomark showpage saveobj restore %%EndPage: 14 14 %%Page: 15 15 /saveobj save def mark 15 pagesetup 10 /Times-Italic f (\255) 0 110 w (C Reference Manual \255 15) 4341 580 w (identifier) 1440 978 w (identifier) 1440 1088 w 10 /Courier f (,) 1832 1088 w 10 /Times-Italic f (parameter\255list) 1917 1088 w 10 /Times-Roman f (The function\255body has the form) 720 1275 w 10 /Times-Italic f (function\255body:) 1080 1462 w (type\255decl\255list function\255statement) 1440 1572 w 10 /Times-Roman f (The) 720 1759 w (purpose) 909 1759 w (of) 1259 1759 w (the) 1376 1759 w (type\255decl\255list) 1532 1759 w (is) 2093 1759 w (to) 2194 1759 w (give) 2306 1759 w (the) 2512 1759 w (types) 2668 1759 w (of) 2913 1759 w (the) 3030 1759 w (formal) 3186 1759 w (parameters.) 3486 1759 w (No) 4007 1759 w (other) 4163 1759 w (identifiers) 4402 1759 w (should) 4842 1759 w (be) 5144 1759 w (de\255) 5273 1759 w (clared in this list, and formal parameters should be declared only here.) 720 1869 w (The function\255statement is just a compound statement which may have declarations at the start.) 820 2023 w 10 /Times-Italic f (function\255statement:) 1080 2210 w ({ declaration\255list) 1440 2320 w 6 /Times-Italic f (opt) 2122 2350 w 10 /Times-Italic f (statement\255list }) 2224 2320 w 10 /Times-Roman f (A simple example of a complete function definition is) 720 2507 w 10 /Courier f (int max) 1080 2694 w (\() 1516 2694 w (a, b, c\)) 1592 2694 w (int a, b, c;) 1080 2804 w ({) 1080 2914 w (int m;) 1440 3024 w (m =) 1440 3134 w (\() 1696 3134 w (a) 1772 3134 w (>) 1848 3134 w (b) 1924 3134 w (\)? a) 2000 3134 w (:) 2256 3134 w (b) 2332 3134 w (;) 2408 3134 w (return) 1440 3244 w (\() 1816 3244 w (m) 1892 3244 w (>) 1968 3244 w (c? m) 2044 3244 w (:) 2300 3244 w (c) 2376 3244 w (\)) 2452 3244 w (;) 2528 3244 w (}) 1080 3354 w 10 /Times-Roman f (Here) 720 3541 w (``int'') 942 3541 w (is) 1209 3541 w (the) 1305 3541 w (type\255specifier;) 1456 3541 w (``max\(a, b, c\)'') 2061 3541 w (is) 2698 3541 w (the) 2794 3541 w (function\255declarator;) 2945 3541 w (``int a, b, c;'') 3767 3541 w (is) 4326 3541 w (the) 4423 3541 w (type\255decl\255list) 4575 3541 w (for) 5132 3541 w (the) 5278 3541 w (formal parameters; ``{ .) 720 3651 w (.) 1681 3651 w (. }'' is the function\255statement.) 1722 3651 w (C) 820 3805 w (converts) 919 3805 w (all) 1289 3805 w 10 /Courier f (float) 1456 3805 w 10 /Times-Roman f (actual) 1788 3805 w (parameters) 2058 3805 w (to) 2527 3805 w 10 /Courier f (double) 2637 3805 w 10 /Times-Roman f (,) 2997 3805 w (so) 3054 3805 w (formal) 3175 3805 w (parameters) 3473 3805 w (declared) 3942 3805 w 10 /Courier f (float) 4311 3805 w 10 /Times-Roman f (have) 4643 3805 w (their) 4864 3805 w (declara\255) 5080 3805 w (tion) 720 3915 w (adjusted) 905 3915 w (to) 1267 3915 w (read) 1374 3915 w 10 /Courier f (double) 1574 3915 w 10 /Times-Roman f (.) 1934 3915 w (Also,) 2013 3915 w (since) 2256 3915 w (a) 2490 3915 w (reference) 2563 3915 w (to) 2961 3915 w (an) 3068 3915 w (array) 3191 3915 w (in) 3424 3915 w (any) 3531 3915 w (context) 3704 3915 w (\(in) 4026 3915 w (particular) 4165 3915 w (as) 4575 3915 w (an) 4686 3915 w (actual) 4808 3915 w (parame\255) 5074 3915 w (ter\)) 720 4025 w (is) 886 4025 w (taken) 981 4025 w (to) 1225 4025 w (mean) 1331 4025 w (a) 1575 4025 w (pointer) 1647 4025 w (to) 1958 4025 w (the) 2064 4025 w (first) 2214 4025 w (element) 2403 4025 w (of) 2747 4025 w (the) 2859 4025 w (array,) 3010 4025 w (declarations) 3268 4025 w (of) 3779 4025 w (formal) 3891 4025 w (parameters) 4186 4025 w (declared) 4652 4025 w (``array) 5018 4025 w (of) 5317 4025 w (...'') 720 4135 w (are) 916 4135 w (adjusted) 1067 4135 w (to) 1430 4135 w (read) 1538 4135 w (``pointer) 1739 4135 w (to) 2118 4135 w (...''.) 2226 4135 w (Finally,) 2447 4135 w (because) 2786 4135 w (neither) 3131 4135 w (structures) 3438 4135 w (nor) 3856 4135 w (functions) 4019 4135 w (can) 4421 4135 w (be) 4589 4135 w (passed) 4713 4135 w (to) 5009 4135 w (a) 5117 4135 w (func\255) 5190 4135 w (tion,) 720 4245 w (it) 927 4245 w (is) 1009 4245 w (useless) 1102 4245 w (to) 1411 4245 w (declare) 1515 4245 w (a) 1828 4245 w (formal) 1898 4245 w (parameter) 2190 4245 w (to) 2615 4245 w (be) 2720 4245 w (a) 2841 4245 w (structure) 2912 4245 w (or) 3288 4245 w (function) 3398 4245 w (\(pointers) 3758 4245 w (to) 4140 4245 w (structures) 4245 4245 w (or) 4660 4245 w (functions) 4770 4245 w (are) 5169 4245 w (of) 5317 4245 w (course permitted\).) 720 4355 w (A) 820 4509 w (free) 918 4509 w 10 /Courier f (return) 1098 4509 w 10 /Times-Roman f (statement) 1484 4509 w (is) 1893 4509 w (supplied) 1986 4509 w (at) 2351 4509 w (the) 2449 4509 w (end) 2597 4509 w (of) 2768 4509 w (each) 2878 4509 w (function) 3087 4509 w (definition,) 3447 4509 w (so) 3888 4509 w (running) 4004 4509 w (off) 4342 4509 w (the) 4485 4509 w (end) 4634 4509 w (causes) 4805 4509 w (control,) 5092 4509 w (but no value, to be returned to the caller.) 720 4619 w (10.2) 720 4839 w (External data definitions) 945 4839 w (An external data definition has the form) 820 4971 w 10 /Times-Italic f (data\255definition:) 1080 5158 w 10 /Courier f (extern) 1440 5268 w 6 /Times-Italic f (opt) 1800 5298 w 10 /Times-Italic f (type\255specifier) 1937 5268 w 6 /Times-Italic f (opt) 2480 5298 w 10 /Times-Italic f (init\255declarator\255list) 2582 5268 w 6 /Times-Italic f (opt) 3327 5298 w 10 /Courier f (;) 3429 5268 w 10 /Times-Roman f (The) 720 5455 w (optional) 903 5455 w 10 /Courier f (extern) 1294 5455 w 10 /Times-Roman f (specifier) 1682 5455 w (is) 2053 5455 w (discussed) 2148 5455 w (in) 2559 5455 w (\247) 2665 5455 w (11.2.) 2743 5455 w (If) 2996 5455 w (given,) 3090 5455 w (the) 3365 5455 w (init\255declarator\255list) 3515 5455 w (is) 4264 5455 w (a) 4360 5455 w (comma\255separated) 4433 5455 w (list) 5165 5455 w (of) 5317 5455 w (declarators each of which may be followed by an initializer for the declarator.) 720 5565 w 10 /Times-Italic f (init\255declarator\255list:) 1080 5752 w (init\255declarator) 1440 5862 w (init\255declarator) 1440 5972 w 10 /Courier f (,) 2054 5972 w 10 /Times-Italic f (init\255declarator\255list) 2174 5972 w (init\255declarator:) 1080 6236 w (declarator initializer) 1440 6346 w 6 /Times-Italic f (opt) 2277 6376 w 10 /Times-Roman f (Each initializer represents the initial value for the corresponding object being defined \(and declared\).) 720 6533 w 10 /Times-Italic f (initializer:) 1080 6720 w (constant) 1440 6830 w ({ constant\255expression\255list }) 1440 6940 w cleartomark showpage saveobj restore %%EndPage: 15 15 %%Page: 16 16 /saveobj save def mark 16 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 16) 720 580 w (constant\255expression\255list:) 1080 978 w (constant\255expression) 1440 1088 w (constant\255expression) 1440 1198 w 10 /Courier f (,) 2264 1198 w 10 /Times-Italic f (constant\255expression\255list) 2349 1198 w 10 /Times-Roman f (Thus) 720 1385 w (an) 953 1385 w (initializer) 1080 1385 w (consists) 1497 1385 w (of) 1848 1385 w (a) 1965 1385 w (constant\255valued) 2043 1385 w (expression,) 2709 1385 w (or) 3195 1385 w (comma\255separated) 3312 1385 w (list) 4049 1385 w (of) 4206 1385 w (expressions,) 4323 1385 w (inside) 4848 1385 w (braces.) 5121 1385 w (The) 720 1495 w (braces) 901 1495 w (may) 1181 1495 w (be dropped when the expression is just a plain constant.) 1379 1495 w (The exact meaning of a constant expression) 3654 1495 w (is discussed in \24715.) 720 1605 w (The expression list is used to initialize arrays; see below.) 1548 1605 w (The) 820 1759 w (type) 1004 1759 w (of) 1205 1759 w (the) 1317 1759 w (identifier) 1468 1759 w (being) 1863 1759 w (defined) 2114 1759 w (should) 2442 1759 w (be) 2738 1759 w (compatible) 2861 1759 w (with) 3335 1759 w (the) 3543 1759 w (type) 3695 1759 w (of) 3897 1759 w (the) 4010 1759 w (initializer:) 4162 1759 w (a) 4603 1759 w 10 /Courier f (double) 4677 1759 w 10 /Times-Roman f (constant) 5067 1759 w (may) 720 1869 w (initialize) 933 1869 w (a) 1324 1869 w 10 /Courier f (float) 1409 1869 w 10 /Times-Roman f (or) 1750 1869 w 10 /Courier f (double) 1873 1869 w 10 /Times-Roman f (identifier;) 2273 1869 w (a) 2707 1869 w (non\255floating\255point) 2791 1869 w (expression) 3564 1869 w (may) 4031 1869 w (initialize) 4243 1869 w (an) 4633 1869 w 10 /Courier f (int) 4767 1869 w 10 /Times-Roman f (,) 4947 1869 w 10 /Courier f (char) 5012 1869 w 10 /Times-Roman f (,) 5252 1869 w (or) 5317 1869 w (pointer.) 720 1979 w (An) 820 2133 w (initializer) 969 2133 w (for) 1379 2133 w (an) 1522 2133 w (array) 1644 2133 w (may) 1876 2133 w (contain) 2076 2133 w (a) 2398 2133 w (comma\255separated) 2470 2133 w (list) 3201 2133 w (of) 3352 2133 w (compile\255time) 3463 2133 w (expressions.) 4024 2133 w (The) 4568 2133 w (length) 4751 2133 w (of) 5029 2133 w (the) 5140 2133 w (ar\255) 5290 2133 w (ray) 720 2243 w (is) 883 2243 w (taken) 986 2243 w (to) 1238 2243 w (be) 1352 2243 w (the) 1482 2243 w (maximum) 1640 2243 w (of) 2082 2243 w (the) 2201 2243 w (number) 2359 2243 w (of) 2699 2243 w (expressions) 2817 2243 w (in) 3318 2243 w (the) 3431 2243 w (list) 3588 2243 w (and) 3746 2243 w (the) 3925 2243 w (square\255bracketed) 4082 2243 w (constant) 4797 2243 w (in) 5165 2243 w (the) 5278 2243 w (array's) 720 2353 w (declarator.) 1033 2353 w (This) 1519 2353 w (constant) 1735 2353 w (may) 2106 2353 w (be) 2316 2353 w (missing,) 2448 2353 w (in) 2823 2353 w (which) 2939 2353 w (case) 3221 2353 w (1) 3430 2353 w (is) 3518 2353 w (used.) 3623 2353 w (The) 3894 2353 w (expressions) 4087 2353 w (initialize) 4591 2353 w (successive) 4979 2353 w (members) 720 2463 w (of) 1113 2463 w (the) 1223 2463 w (array) 1372 2463 w (starting) 1603 2463 w (at) 1930 2463 w (the) 2029 2463 w (origin) 2177 2463 w (\(subscript) 2442 2463 w (0\)) 2862 2463 w (of) 2971 2463 w (the) 3080 2463 w (array.) 3228 2463 w (The) 3508 2463 w (acceptable) 3689 2463 w (expressions) 4135 2463 w (for) 4627 2463 w (an) 4769 2463 w (array) 4889 2463 w (of) 5119 2463 w (type) 5228 2463 w (``array) 720 2573 w (of) 1019 2573 w (...'') 1131 2573 w (are) 1301 2573 w (the) 1451 2573 w (same) 1602 2573 w (as) 1836 2573 w (those) 1949 2573 w (for) 2190 2573 w (type) 2336 2573 w (``...''.) 2538 2573 w (As) 2825 2573 w (a) 2966 2573 w (special) 3040 2573 w (case,) 3347 2573 w (a) 3573 2573 w (single) 3647 2573 w (string) 3916 2573 w (may) 4174 2573 w (be) 4376 2573 w (given) 4500 2573 w (as) 4752 2573 w (the) 4865 2573 w (initializer) 5017 2573 w (for an array of) 720 2683 w 10 /Courier f (char) 1317 2683 w 10 /Times-Roman f (s; in this case, the characters in the string are taken as the initializing values.) 1557 2683 w (Structures) 820 2837 w (can) 1259 2837 w (be) 1431 2837 w (initialized,) 1559 2837 w (but) 2018 2837 w (this) 2180 2837 w (operation) 2359 2837 w (is) 2770 2837 w (incompletely) 2871 2837 w (implemented) 3427 2837 w (and) 3983 2837 w (machine\255dependent.) 4162 2837 w (Basically) 5028 2837 w (the) 720 2947 w (structure) 870 2947 w (is) 1247 2947 w (regarded) 1342 2947 w (as) 1718 2947 w (a) 1829 2947 w (sequence) 1901 2947 w (of) 2294 2947 w (words) 2405 2947 w (and) 2677 2947 w (the) 2849 2947 w (initializers) 2998 2947 w (are) 3447 2947 w (placed) 3595 2947 w (into) 3882 2947 w (those) 4065 2947 w (words.) 4303 2947 w (Structure) 4624 2947 w (initializa\255) 5017 2947 w (tion,) 720 3057 w (using) 929 3057 w (a) 1174 3057 w (comma\255separated) 1246 3057 w (list) 1977 3057 w (in) 2128 3057 w (braces,) 2234 3057 w (is) 2541 3057 w (safe) 2636 3057 w (if) 2824 3057 w (all) 2913 3057 w (the) 3041 3057 w (members) 3191 3057 w (of) 3585 3057 w (the) 3696 3057 w (structure) 3846 3057 w (are) 4223 3057 w (integers) 4372 3057 w (or) 4716 3057 w (pointers) 4827 3057 w (but) 5177 3057 w (is) 5333 3057 w (otherwise ill\255advised.) 720 3167 w (The initial value of any externally\255defined object not explicitly initialized is guaranteed to be 0.) 820 3321 w 10 /Courier f (11.) 720 3596 w (Scope rules) 1020 3596 w 10 /Times-Roman f (A) 820 3728 w (complete) 921 3728 w (C) 1317 3728 w (program) 1414 3728 w (need) 1782 3728 w (not) 2000 3728 w (all) 2158 3728 w (be) 2288 3728 w (compiled) 2412 3728 w (at) 2814 3728 w (the) 2916 3728 w (same) 3068 3728 w (time:) 3303 3728 w (the) 3539 3728 w (source) 3691 3728 w (text) 3981 3728 w (of) 4161 3728 w (the) 4274 3728 w (program) 4426 3728 w (may) 4794 3728 w (be) 4996 3728 w (kept) 5120 3728 w (in) 5322 3728 w (several) 720 3838 w (files,) 1029 3838 w (and) 1253 3838 w (precompiled) 1424 3838 w (routines) 1950 3838 w (may) 2299 3838 w (be) 2498 3838 w (loaded) 2619 3838 w (from) 2912 3838 w (libraries.) 3133 3838 w (Communication) 3537 3838 w (among) 4209 3838 w (the) 4508 3838 w (functions) 4657 3838 w (of) 5055 3838 w (a) 5164 3838 w (pro\255) 5234 3838 w (gram may be carried out both through explicit calls and through manipulation of external data.) 720 3948 w (Therefore,) 820 4102 w (there) 1271 4102 w (are) 1504 4102 w (two) 1659 4102 w (kinds) 1843 4102 w (of) 2094 4102 w (scope) 2211 4102 w (to) 2472 4102 w (consider:) 2584 4102 w (first,) 2984 4102 w (what) 3204 4102 w (may) 3433 4102 w (be) 3640 4102 w (called) 3769 4102 w (the) 4042 4102 w 10 /Times-Italic f (lexical) 4199 4102 w (scope) 4500 4102 w 10 /Times-Roman f (of) 4762 4102 w (an) 4880 4102 w (identifier,) 5009 4102 w (which) 720 4212 w (is) 990 4212 w (essentially) 1083 4212 w (the) 1531 4212 w (region of a program during which it may be used without drawing ``undefined identifier'' di\255) 1679 4212 w (agnostics;) 720 4322 w (and) 1154 4322 w (second,) 1332 4322 w (the) 1669 4322 w (scope) 1826 4322 w (associated) 2088 4322 w (with) 2533 4322 w (external) 2746 4322 w (identifiers,) 3102 4322 w (which) 3567 4322 w (is) 3846 4322 w (characterized) 3948 4322 w (by) 4513 4322 w (the) 4648 4322 w (rule) 4805 4322 w (that) 4995 4322 w (refer\255) 5180 4322 w (ences to the same external identifier are references to the same object.) 720 4432 w (11.1) 720 4652 w (Lexical scope) 945 4652 w (C) 820 4784 w (is) 915 4784 w (not) 1010 4784 w (a) 1166 4784 w (block\255structured) 1238 4784 w (language;) 1920 4784 w (this) 2336 4784 w (may) 2509 4784 w (fairly) 2709 4784 w (be) 2953 4784 w (considered) 3076 4784 w (a) 3537 4784 w (defect.) 3610 4784 w (The) 3932 4784 w (lexical) 4116 4784 w (scope) 4411 4784 w (of) 4667 4784 w (names) 4779 4784 w (declared) 5063 4784 w (in) 720 4894 w (external) 834 4894 w (definitions) 1191 4894 w (extends) 1655 4894 w (from) 1996 4894 w (their) 2226 4894 w (definition) 2445 4894 w (through) 2870 4894 w (the) 3216 4894 w (end) 3373 4894 w (of) 3552 4894 w (the) 3670 4894 w (file) 3827 4894 w (in) 3995 4894 w (which) 4108 4894 w (they) 4387 4894 w (appear.) 4594 4894 w (The) 4944 4894 w (lexical) 5134 4894 w (scope of names declared at the head of functions \(either as formal parameters or in the declarations heading the) 720 5004 w (state\255) 5184 5004 w (ments constituting the function itself\) is the body of the function.) 720 5114 w (It) 820 5268 w (is) 913 5268 w (an) 1012 5268 w (error) 1138 5268 w (to) 1363 5268 w (redeclare) 1474 5268 w (identifiers) 1871 5268 w (already) 2309 5268 w (declared) 2635 5268 w (in) 3005 5268 w (the) 3116 5268 w (current) 3271 5268 w (context,) 3586 5268 w (unless) 3938 5268 w (the) 4221 5268 w (new) 4376 5268 w (declaration) 4575 5268 w (specifies) 5051 5268 w (the same type and storage class as already possessed by the identifiers.) 720 5378 w (11.2) 720 5598 w (Scope of externals) 945 5598 w (If) 820 5730 w (a) 919 5730 w (function) 996 5730 w (declares) 1362 5730 w (an) 1721 5730 w (identifier) 1848 5730 w (to) 2247 5730 w (be) 2358 5730 w 10 /Courier f (extern) 2520 5730 w 10 /Times-Roman f (,) 2880 5730 w (then) 2938 5730 w (somewhere) 3143 5730 w (among) 3630 5730 w (the) 3935 5730 w (files) 4090 5730 w (or) 4295 5730 w (libraries) 4411 5730 w (constituting) 4771 5730 w (the) 5278 5730 w (complete) 720 5840 w (program) 1114 5840 w (there) 1480 5840 w (must) 1707 5840 w (be) 1930 5840 w (an) 2052 5840 w (external) 2174 5840 w (definition) 2523 5840 w (for) 2940 5840 w (the) 3083 5840 w (identifier.) 3232 5840 w (All) 3675 5840 w (functions) 3830 5840 w (in) 4229 5840 w (a) 4334 5840 w (given) 4405 5840 w (program) 4654 5840 w (which) 5019 5840 w (re\255) 5290 5840 w (fer) 720 5950 w (to) 856 5950 w (the) 960 5950 w (same) 1108 5950 w (external) 1339 5950 w (identifier) 1686 5950 w (refer) 2078 5950 w (to) 2292 5950 w (the) 2397 5950 w (same) 2546 5950 w (object,) 2778 5950 w (so) 3074 5950 w (care) 3190 5950 w (must) 3382 5950 w (be) 3604 5950 w (taken) 3725 5950 w (that) 3968 5950 w (the) 4145 5950 w (type) 4294 5950 w (and) 4493 5950 w (extent) 4664 5950 w (specified) 4935 5950 w (in) 5322 5950 w (the definition are compatible with those specified by each function which references the data.) 720 6060 w (In) 820 6214 w 8 /Times-Roman f (PDP) 933 6214 w 10 /Times-Roman f (\25511) 1081 6214 w (C,) 1244 6214 w (it) 1366 6214 w (is) 1452 6214 w (explicitly) 1549 6214 w (permitted) 1957 6214 w (for) 2370 6214 w (\(compatible\)) 2517 6214 w (external) 3058 6214 w (definitions) 3410 6214 w (of) 3869 6214 w (the) 3983 6214 w (same) 4136 6214 w (identifier) 4372 6214 w (to) 4769 6214 w (be) 4878 6214 w (present) 5003 6214 w (in) 5322 6214 w (several) 720 6324 w (of) 1034 6324 w (the) 1149 6324 w (separately\255compiled) 1303 6324 w (pieces) 2144 6324 w (of) 2425 6324 w (a) 2540 6324 w (complete) 2616 6324 w (program,) 3014 6324 w (or) 3408 6324 w (even) 3522 6324 w (twice) 3741 6324 w (within) 3988 6324 w (the) 4275 6324 w (same) 4428 6324 w (program) 4664 6324 w (file,) 5033 6324 w (with) 5222 6324 w (the important limitation that the identifier may be initialized in at most one of the definitions.) 720 6434 w (In other) 4497 6434 w (operating) 4836 6434 w (sys\255) 5239 6434 w (tems,) 720 6544 w (however,) 961 6544 w (the) 1356 6544 w (compiler) 1505 6544 w (must) 1887 6544 w (know) 2109 6544 w (in) 2358 6544 w (just) 2463 6544 w (which) 2635 6544 w (file) 2906 6544 w (the) 3066 6544 w (storage) 3215 6544 w (for) 3530 6544 w (the) 3673 6544 w (identifier) 3822 6544 w (is) 4215 6544 w (allocated,) 4309 6544 w (and) 4721 6544 w (in) 4892 6544 w (which) 4997 6544 w (file) 5267 6544 w (the) 720 6654 w (identifier) 870 6654 w (is) 1264 6654 w (merely) 1359 6654 w (being) 1664 6654 w (referred) 1914 6654 w (to.) 2256 6654 w (In) 2412 6654 w (the) 2523 6654 w (implementations) 2673 6654 w (of) 3368 6654 w (C) 3479 6654 w (for) 3574 6654 w (such) 3718 6654 w (systems,) 3929 6654 w (the) 4299 6654 w (appearance) 4449 6654 w (of) 4924 6654 w (the) 5035 6654 w 10 /Courier f (ex\255) 5220 6654 w (tern) 720 6764 w 10 /Times-Roman f (keyword) 987 6764 w (before) 1363 6764 w (an) 1644 6764 w (external) 1765 6764 w (definition) 2113 6764 w (indicates) 2529 6764 w (that) 2911 6764 w (storage) 3088 6764 w (for) 3403 6764 w (the) 3546 6764 w (identifiers) 3695 6764 w (being) 4127 6764 w (declared) 4375 6764 w (will) 4738 6764 w (be) 4920 6764 w (allocated) 5040 6764 w (in) 720 6874 w (another) 825 6874 w (file.) 1151 6874 w (Thus) 1361 6874 w (in) 1588 6874 w (a) 1693 6874 w (multi\255file) 1764 6874 w (program,) 2169 6874 w (an) 2559 6874 w (external) 2680 6874 w (data) 3028 6874 w (definition) 3221 6874 w (without) 3637 6874 w (the) 3970 6874 w 10 /Courier f (extern) 4154 6874 w 10 /Times-Roman f (specifier) 4541 6874 w (must) 4912 6874 w (appear) 5135 6874 w (in) 720 6984 w (exactly) 829 6984 w (one) 1148 6984 w (of) 1323 6984 w (the) 1437 6984 w (files.) 1590 6984 w (Any) 1843 6984 w (other) 2046 6984 w (files) 2282 6984 w (which) 2485 6984 w (wish) 2760 6984 w (to) 2980 6984 w (give) 3089 6984 w (an) 3292 6984 w (external) 3417 6984 w (definition) 3768 6984 w (for) 4187 6984 w (the) 4333 6984 w (identifier) 4485 6984 w (must) 4881 6984 w (include) 5106 6984 w (the) 720 7094 w 10 /Courier f (extern) 902 7094 w 10 /Times-Roman f (in the definition.) 1287 7094 w (The identifier can be initialized only in the file where storage is allocated.) 2001 7094 w (In) 820 7248 w 8 /Times-Roman f (PDP) 928 7248 w 10 /Times-Roman f (\25511 C none of this nonsense is necessary and the) 1076 7248 w 10 /Courier f (extern) 3069 7248 w 10 /Times-Roman f (specifier is ignored in external definitions.) 3454 7248 w cleartomark showpage saveobj restore %%EndPage: 16 16 %%Page: 17 17 /saveobj save def mark 17 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 17) 4341 580 w 10 /Courier f (12.) 720 978 w (Compiler control lines) 1020 978 w 10 /Times-Roman f (When) 820 1110 w (a) 1087 1110 w (line) 1161 1110 w (of) 1341 1110 w (a) 1454 1110 w (C) 1528 1110 w (program) 1625 1110 w (begins) 1993 1110 w (with) 2284 1110 w (the) 2492 1110 w (character) 2644 1110 w 10 /Courier f (#) 3038 1110 w 10 /Times-Roman f (,) 3098 1110 w (it) 3153 1110 w (is) 3239 1110 w (interpreted) 3336 1110 w (not) 3798 1110 w (by) 3956 1110 w (the) 4086 1110 w (compiler) 4238 1110 w (itself,) 4623 1110 w (but) 4878 1110 w (by) 5036 1110 w (a) 5166 1110 w (pre\255) 5240 1110 w (processor) 720 1220 w (which) 1138 1220 w (is) 1418 1220 w (capable) 1521 1220 w (of) 1861 1220 w (replacing) 1980 1220 w (instances) 2387 1220 w (of) 2789 1220 w (given) 2908 1220 w (identifiers) 3165 1220 w (with) 3605 1220 w (arbitrary) 3818 1220 w (token\255strings) 4196 1220 w (and) 4753 1220 w (of) 4932 1220 w (inserting) 5050 1220 w (named) 720 1330 w (files) 1015 1330 w (into) 1216 1330 w (the) 1401 1330 w (source) 1552 1330 w (program.) 1841 1330 w (In) 2258 1330 w (order) 2370 1330 w (to) 2609 1330 w (cause) 2717 1330 w (this) 2968 1330 w (preprocessor) 3143 1330 w (to) 3682 1330 w (be) 3790 1330 w (invoked,) 3914 1330 w (it) 4291 1330 w (is) 4377 1330 w (necessary) 4474 1330 w (that) 4891 1330 w (the) 5071 1330 w (very) 5223 1330 w (first) 720 1440 w (line) 907 1440 w (of) 1083 1440 w (the) 1192 1440 w (program begin with) 1340 1440 w 10 /Courier f (#) 2153 1440 w 10 /Times-Roman f (.) 2213 1440 w (Since null lines are ignored by the preprocessor, this line need contain no oth\255) 2288 1440 w (er information.) 720 1550 w (12.1) 720 1770 w (Token replacement) 945 1770 w (A compiler\255control line of the form) 820 1902 w 10 /Courier f (# define) 1080 2089 w 10 /Times-Italic f (identifier token\255string) 1620 2089 w 10 /Times-Roman f (\(note:) 720 2276 w (no) 981 2276 w (trailing) 1109 2276 w (semicolon\)) 1426 2276 w (causes) 1898 2276 w (the) 2186 2276 w (preprocessor) 2336 2276 w (to) 2873 2276 w (replace) 2979 2276 w (subsequent) 3294 2276 w (instances) 3767 2276 w (of) 4162 2276 w (the) 4274 2276 w (identifier) 4425 2276 w (with) 4820 2276 w (the) 5027 2276 w (given) 5178 2276 w (string) 720 2386 w (of) 980 2386 w (tokens) 1095 2386 w (\(except) 1388 2386 w (within) 1712 2386 w (compiler) 1999 2386 w (control) 2385 2386 w (lines\).) 2699 2386 w (The) 3002 2386 w (replacement) 3188 2386 w (token\255string) 3706 2386 w (has) 4220 2386 w (comments) 4384 2386 w (removed) 4826 2386 w (from) 5206 2386 w (it, and it is surrounded with blanks.) 720 2496 w (No rescanning of the replacement string is) 2181 2496 w (attempted.) 3898 2496 w (This) 4368 2496 w (facility) 4572 2496 w (is) 4881 2496 w (most) 4974 2496 w (valu\255) 5195 2496 w (able for definition of ``manifest constants'', as in) 720 2606 w 10 /Courier f (# define tabsize 100) 1080 2793 w (.) 1080 2903 w (.) 1156 2903 w (.) 1232 2903 w (int table[tabsize];) 1080 3013 w 10 /Times-Roman f (12.2) 720 3310 w (File inclusion) 945 3310 w (Large) 820 3442 w (C) 1078 3442 w (programs) 1171 3442 w (often) 1574 3442 w (contain) 1805 3442 w (many) 2125 3442 w (external) 2373 3442 w (data) 2720 3442 w (definitions.) 2912 3442 w (Since) 3416 3442 w (the) 3664 3442 w (lexical) 3813 3442 w (scope) 4106 3442 w (of) 4360 3442 w (external) 4470 3442 w (definitions) 4818 3442 w (ex\255) 5273 3442 w (tends) 720 3552 w (to) 963 3552 w (the) 1073 3552 w (end) 1227 3552 w (of) 1403 3552 w (the) 1518 3552 w (program) 1672 3552 w (file,) 2042 3552 w (it) 2232 3552 w (is) 2320 3552 w (good) 2419 3552 w (practice) 2651 3552 w (to) 2998 3552 w (put) 3107 3552 w (all) 3266 3552 w (the) 3397 3552 w (external) 3550 3552 w (definitions) 3902 3552 w (for) 4361 3552 w (data) 4508 3552 w (at) 4705 3552 w (the) 4808 3552 w (start) 4961 3552 w (of) 5164 3552 w (the) 5278 3552 w (program) 720 3662 w (file,) 1093 3662 w (so) 1286 3662 w (that) 1410 3662 w (the) 1595 3662 w (functions) 1752 3662 w (defined) 2159 3662 w (within) 2493 3662 w (the) 2784 3662 w (file) 2941 3662 w (need) 3109 3662 w (not) 3332 3662 w (repeat) 3495 3662 w (tedious) 3773 3662 w (and) 4097 3662 w (error\255prone) 4277 3662 w (declarations) 4766 3662 w (for) 5284 3662 w (each) 720 3772 w (external) 937 3772 w (identifier) 1293 3772 w (they) 1694 3772 w (use.) 1901 3772 w (It) 2119 3772 w (is) 2215 3772 w (also) 2316 3772 w (useful) 2511 3772 w (to) 2789 3772 w (put) 2901 3772 w (a) 3063 3772 w (heavily) 3141 3772 w (used) 3469 3772 w (structure) 3686 3772 w (definition) 4069 3772 w (at) 4492 3772 w (the) 4598 3772 w (start) 4754 3772 w (and) 4960 3772 w (use) 5138 3772 w (its) 5305 3772 w (structure) 720 3882 w (tag) 1101 3882 w (to) 1255 3882 w (declare) 1365 3882 w (the) 1684 3882 w 10 /Courier f (auto) 1839 3882 w 10 /Times-Roman f (pointers) 2112 3882 w (to) 2467 3882 w (the) 2578 3882 w (structure) 2733 3882 w (used) 3115 3882 w (within) 3331 3882 w (functions.) 3620 3882 w (To) 4075 3882 w (further) 4219 3882 w (exploit) 4523 3882 w (this) 4834 3882 w (technique) 5012 3882 w (when a large C program consists of several files, a compiler control line of the form) 720 3992 w 10 /Courier f (# include ") 1080 4179 w 10 /Times-Italic f (filename) 1740 4179 w 10 /Courier f (") 2100 4179 w 10 /Times-Roman f (results in the replacement of that line by the entire contents of the file) 720 4366 w 10 /Times-Italic f (filename) 3521 4366 w 10 /Times-Roman f (.) 3865 4366 w 10 /Courier f (13.) 820 4685 w (Implicit declarations) 1120 4685 w 10 /Times-Roman f (It) 820 4817 w (is) 908 4817 w (not) 1002 4817 w (always) 1157 4817 w (necessary) 1461 4817 w (to) 1875 4817 w (specify) 1980 4817 w (both) 2296 4817 w (the) 2502 4817 w (storage) 2652 4817 w (class) 2968 4817 w (and) 3190 4817 w (the) 3362 4817 w (type) 3512 4817 w (of) 3712 4817 w (identifiers) 3823 4817 w (in) 4256 4817 w (a) 4362 4817 w (declaration.) 4434 4817 w (Sometimes) 4955 4817 w (the) 720 4927 w (storage) 880 4927 w (class) 1206 4927 w (is) 1438 4927 w (supplied) 1543 4927 w (by) 1920 4927 w (the) 2058 4927 w (context:) 2218 4927 w (in) 2578 4927 w (external) 2694 4927 w (definitions,) 3053 4927 w (and) 3544 4927 w (in) 3725 4927 w (declarations) 3840 4927 w (of) 4359 4927 w (formal) 4479 4927 w (parameters) 4782 4927 w (and) 5256 4927 w (structure members.) 720 5037 w (In a declaration inside a function, if a storage class but no type is given,) 1535 5037 w (the) 4423 5037 w (identifier) 4571 5037 w (is) 4963 5037 w (assumed) 5056 5037 w (to) 720 5147 w (be) 824 5147 w 10 /Courier f (int) 944 5147 w 10 /Times-Roman f (;) 1124 5147 w (if) 1178 5147 w (a type but no storage class is indicated, the identifier is assumed to be) 1265 5147 w 10 /Courier f (auto) 4070 5147 w 10 /Times-Roman f (.) 4310 5147 w (An exception to the latter) 4385 5147 w (rule) 720 5257 w (is) 912 5257 w (made) 1016 5257 w (for) 1269 5257 w (functions,) 1422 5257 w (since) 1856 5257 w 10 /Courier f (auto) 2098 5257 w 10 /Times-Roman f (functions) 2375 5257 w (are) 2784 5257 w (meaningless) 2943 5257 w (\(C) 3475 5257 w (being) 3613 5257 w (incapable) 3873 5257 w (of) 4293 5257 w (compiling) 4414 5257 w (code) 4858 5257 w (into) 5084 5257 w (the) 5278 5257 w (stack\).) 720 5367 w (If the type of an identifier is ``function returning ...'', it is implicitly declared to be) 1033 5367 w 10 /Courier f (extern) 4356 5367 w 10 /Times-Roman f (.) 4716 5367 w (In) 820 5521 w (an) 934 5521 w (expression,) 1059 5521 w (an) 1542 5521 w (identifier) 1667 5521 w (followed) 2064 5521 w (by) 2450 5521 w 10 /Courier f (\() 2582 5521 w 10 /Times-Roman f (and) 2674 5521 w (not) 2850 5521 w (currently) 3010 5521 w (declared) 3402 5521 w (is) 3771 5521 w (contextually) 3870 5521 w (declared) 4396 5521 w (to) 4765 5521 w (be) 4875 5521 w (``function) 5001 5521 w (returning) 720 5631 w 10 /Courier f (int) 1111 5631 w 10 /Times-Roman f (''.) 1291 5631 w (Undefined) 820 5785 w (identifiers) 1280 5785 w (not) 1724 5785 w (followed) 1891 5785 w (by) 2285 5785 w 10 /Courier f (\() 2424 5785 w 10 /Times-Roman f (are) 2523 5785 w (assumed) 2683 5785 w (to) 3067 5785 w (be) 3185 5785 w (labels) 3319 5785 w (which) 3592 5785 w (will) 3876 5785 w (be) 4072 5785 w (defined) 4206 5785 w (later) 4545 5785 w (in) 4762 5785 w (the) 4880 5785 w (function.) 5042 5785 w (\(Since) 720 5895 w (a) 1008 5895 w (label) 1085 5895 w (is) 1312 5895 w (not) 1412 5895 w (an) 1573 5895 w (lvalue,) 1700 5895 w (this) 2002 5895 w (accounts) 2180 5895 w (for) 2562 5895 w (the) 2711 5895 w (``Lvalue) 2866 5895 w (required'') 3242 5895 w (error) 3673 5895 w (message) 3899 5895 w (sometimes) 4270 5895 w (noticed) 4731 5895 w (when) 5058 5895 w (an) 5306 5895 w (undeclared identifier is used.\)) 720 6005 w (Naturally, appearance of an identifier as a label declares it as such.) 1956 6005 w (For) 820 6159 w (some) 987 6159 w (purposes) 1226 6159 w (it) 1609 6159 w (is) 1693 6159 w (best) 1788 6159 w (to) 1977 6159 w (consider) 2083 6159 w (formal) 2449 6159 w (parameters) 2743 6159 w (as) 3208 6159 w (belonging) 3319 6159 w (to) 3747 6159 w (their) 3853 6159 w (own) 4064 6159 w (storage) 4264 6159 w (class.) 4580 6159 w (In) 4852 6159 w (practice,) 4964 6159 w (C) 5333 6159 w (treats) 720 6269 w (parameters) 968 6269 w (as) 1437 6269 w (if) 1551 6269 w (they) 1643 6269 w (were) 1846 6269 w (automatic) 2070 6269 w (\(except) 2495 6269 w (that,) 2819 6269 w (as) 3025 6269 w (mentioned) 3139 6269 w (above,) 3592 6269 w (formal) 3886 6269 w (parameter) 4183 6269 w (arrays) 4612 6269 w (and) 4886 6269 w 10 /Courier f (float) 5061 6269 w 10 /Times-Roman f (s) 5361 6269 w (are treated specially\).) 720 6379 w 10 /Courier f (14.) 720 6654 w (Types revisited) 1020 6654 w 10 /Times-Roman f (This section summarizes the operations which can be performed on objects of certain types.) 820 6786 w cleartomark showpage saveobj restore %%EndPage: 17 17 %%Page: 18 18 /saveobj save def mark 18 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 18) 720 580 w 10 /Times-Roman f (14.1) 720 978 w (Structures) 945 978 w (There) 820 1110 w (are) 1081 1110 w (only) 1231 1110 w (two) 1439 1110 w (things) 1619 1110 w (that) 1894 1110 w (can) 2074 1110 w (be) 2242 1110 w (done) 2366 1110 w (with) 2590 1110 w (a) 2798 1110 w (structure:) 2872 1110 w (pick) 3279 1110 w (out) 3481 1110 w (one) 3639 1110 w (of) 3813 1110 w (its) 3926 1110 w (members) 4051 1110 w (\(by) 4447 1110 w (means) 4610 1110 w (of) 4895 1110 w (the) 5008 1110 w 10 /Courier f (.) 5211 1110 w 10 /Times-Roman f (or) 5317 1110 w 10 /S f (-) 720 1220 w 10 /Courier f (>) 775 1220 w 10 /Times-Roman f (operators\);) 867 1220 w (or) 1331 1220 w (take) 1446 1220 w (its) 1644 1220 w (address) 1771 1220 w (\(by) 2102 1220 w (unary) 2267 1220 w 10 /Courier f (&) 2526 1220 w 10 /Times-Roman f (\).) 2586 1220 w (Other) 2701 1220 w (operations,) 2960 1220 w (such) 3433 1220 w (as) 3648 1220 w (assigning) 3763 1220 w (from) 4173 1220 w (or) 4399 1220 w (to) 4514 1220 w (it) 4623 1220 w (or) 4710 1220 w (passing) 4824 1220 w (it) 5155 1220 w (as) 5242 1220 w (a) 5356 1220 w (parameter,) 720 1330 w (draw) 1171 1330 w (an) 1398 1330 w (error) 1520 1330 w (message.) 1741 1330 w (In) 2158 1330 w (the) 2270 1330 w (future,) 2421 1330 w (it) 2713 1330 w (is) 2798 1330 w (expected) 2894 1330 w (that) 3277 1330 w (these) 3456 1330 w (operations,) 3690 1330 w (but) 4160 1330 w (not) 4317 1330 w (necessarily) 4474 1330 w (others,) 4946 1330 w (will) 5244 1330 w (be allowed.) 720 1440 w (14.2) 720 1660 w (Functions) 945 1660 w (There) 820 1792 w (are) 1083 1792 w (only) 1235 1792 w (two) 1444 1792 w (things) 1625 1792 w (that) 1901 1792 w (can) 2082 1792 w (be) 2251 1792 w (done) 2376 1792 w (with) 2601 1792 w (a) 2810 1792 w (function:) 2885 1792 w (call) 3277 1792 w (it,) 3452 1792 w (or) 3564 1792 w (take) 3678 1792 w (its) 3875 1792 w (address.) 4001 1792 w (If) 4381 1792 w (the) 4478 1792 w (name) 4631 1792 w (of) 4878 1792 w (a) 4992 1792 w (function) 5067 1792 w (appears) 720 1902 w (in) 1054 1902 w (an) 1161 1902 w (expression) 1284 1902 w (not) 1740 1902 w (in) 1897 1902 w (the) 2004 1902 w (function\255name) 2155 1902 w (position) 2766 1902 w (of) 3118 1902 w (a) 3230 1902 w (call,) 3303 1902 w (a) 3501 1902 w (pointer) 3574 1902 w (to) 3886 1902 w (the) 3993 1902 w (function) 4144 1902 w (is) 4506 1902 w (generated.) 4602 1902 w (Thus,) 5068 1902 w (to) 5322 1902 w (pass one function to another, one might say) 720 2012 w 10 /Courier f (int f\() 1080 2199 w (\);) 1472 2199 w (...) 1080 2309 w (g\() 1080 2419 w (f) 1216 2419 w (\);) 1292 2419 w 10 /Times-Roman f (Then the definition of) 720 2606 w 10 /Times-Italic f (g) 1619 2606 w 10 /Times-Roman f (might read) 1694 2606 w 10 /Courier f (g) 1080 2793 w (\() 1156 2793 w (funcp) 1232 2793 w (\)) 1548 2793 w (int \() 1080 2903 w 10 /Times-Roman f (*) 1380 2925 w 10 /Courier f (funcp\)) 1430 2903 w (\() 1806 2903 w (\);) 1898 2903 w ({) 1080 3013 w (.) 1440 3123 w (.) 1516 3123 w (.) 1592 3123 w (\() 1440 3233 w 10 /Times-Roman f (*) 1500 3255 w 10 /Courier f (funcp\)) 1550 3233 w (\() 1926 3233 w (\);) 2018 3233 w (.) 1440 3343 w (.) 1516 3343 w (.) 1592 3343 w (}) 1080 3453 w 10 /Times-Roman f (Notice that) 720 3640 w 10 /Times-Italic f (f) 1186 3640 w 10 /Times-Roman f (was declared explicitly in the calling routine since its first appearance was not followed by) 1239 3640 w 10 /Courier f (\() 4885 3640 w 10 /Times-Roman f (.) 4961 3640 w (14.3) 720 3860 w (Arrays, pointers, and subscripting) 945 3860 w (Every) 820 3992 w (time) 1084 3992 w (an) 1288 3992 w (identifier) 1408 3992 w (of) 1800 3992 w (array) 1909 3992 w (type) 2139 3992 w (appears) 2337 3992 w (in) 2667 3992 w (an) 2771 3992 w (expression,) 2891 3992 w (it) 3369 3992 w (is) 3451 3992 w (converted) 3544 3992 w (into) 3963 3992 w (a) 4145 3992 w (pointer) 4215 3992 w (to) 4524 3992 w (the) 4628 3992 w (first) 4776 3992 w (member) 4963 3992 w (of) 5317 3992 w (the) 720 4102 w (array.) 868 4102 w (Because) 1148 4102 w (of) 1506 4102 w (this) 1615 4102 w (conversion,) 1786 4102 w (arrays) 2275 4102 w (are) 2544 4102 w (not) 2691 4102 w (lvalues.) 2845 4102 w (By) 3204 4102 w (definition,) 3347 4102 w (the) 3787 4102 w (subscript) 3935 4102 w (operator) 4322 4102 w 10 /Courier f ([) 4715 4102 w (]) 4791 4102 w 10 /Times-Roman f (is interpreted) 4876 4102 w (in such a way that ``E1[E2]'' is identical) 720 4212 w (to) 2373 4212 w (``) 2477 4212 w (*) 2543 4234 w (\() 2593 4212 w (\() 2642 4212 w (E1\)) 2691 4212 w (+) 2851 4212 w (\(E2) 2923 4212 w (\)) 3083 4212 w (\)''.) 3132 4212 w (Because) 3307 4212 w (of) 3665 4212 w (the) 3774 4212 w (conversion) 3922 4212 w (rules) 4386 4212 w (which) 4606 4212 w (apply) 4876 4212 w (to) 5124 4212 w 10 /Courier f (+) 5228 4212 w 10 /Times-Roman f (,) 5288 4212 w (if) 5339 4212 w (E1) 720 4322 w (is) 862 4322 w (an) 960 4322 w (array) 1085 4322 w (and) 1320 4322 w (E2) 1495 4322 w (an) 1637 4322 w (integer,) 1762 4322 w (then) 2095 4322 w (E1[E2]) 2298 4322 w (refers) 2617 4322 w (to) 2874 4322 w (the) 2983 4322 w (E2\255th) 3136 4322 w (member) 3388 4322 w (of) 3745 4322 w (E1.) 3858 4322 w (Therefore,) 4049 4322 w (despite) 4496 4322 w (its) 4809 4322 w (asymmetric) 4934 4322 w (appearance, subscripting is a commutative operation.) 720 4432 w (A) 820 4586 w (consistent) 931 4586 w (rule) 1370 4586 w (is) 1564 4586 w (followed) 1670 4586 w (in) 2064 4586 w (the) 2181 4586 w (case) 2342 4586 w (of) 2552 4586 w (multi\255dimensional) 2674 4586 w (arrays.) 3447 4586 w (If) 3780 4586 w (E) 3886 4586 w (is) 3987 4586 w (an) 4094 4586 w 10 /Times-Italic f (n) 4228 4586 w 10 /Times-Roman f (\255dimensional) 4294 4586 w (array) 4856 4586 w (of) 5100 4586 w (rank) 5223 4586 w 10 /Times-Italic f (i) 720 4696 w 10 /S f (\264) 764 4696 w 10 /Times-Italic f (j) 835 4696 w 10 /S f (\264) 879 4696 w 10 /Times-Italic f (.) 950 4696 w (.) 991 4696 w (.) 1032 4696 w 10 /S f (\264) 1073 4696 w 10 /Times-Italic f (k,) 1128 4696 w 10 /Times-Roman f (then) 1235 4696 w (E) 1445 4696 w (appearing) 1544 4696 w (in) 1975 4696 w (an) 2091 4696 w (expression) 2223 4696 w (is) 2688 4696 w (converted) 2793 4696 w (to) 3224 4696 w (a) 3340 4696 w (pointer) 3421 4696 w (to) 3741 4696 w (an) 3856 4696 w (\() 3987 4696 w 10 /Times-Italic f (n) 4020 4696 w 10 /S f (-) 4070 4696 w 10 /Times-Roman f (1\)\255dimensional) 4125 4696 w (array) 4767 4696 w (with) 5008 4696 w (rank) 5223 4696 w 10 /Times-Italic f (j) 720 4806 w 10 /S f (\264) 764 4806 w 10 /Times-Italic f (.) 835 4806 w (.) 876 4806 w (.) 917 4806 w 10 /S f (\264) 958 4806 w 10 /Times-Italic f (k.) 1013 4806 w 10 /Times-Roman f (If) 1134 4806 w (the) 1227 4806 w (*) 1376 4828 w (operator,) 1453 4806 w (either) 1837 4806 w (explicitly) 2091 4806 w (or) 2496 4806 w (implicitly) 2606 4806 w (as) 3023 4806 w (a) 3133 4806 w (result) 3205 4806 w (of) 3455 4806 w (subscripting,) 3566 4806 w (is) 4108 4806 w (applied) 4203 4806 w (to) 4525 4806 w (this) 4631 4806 w (pointer,) 4804 4806 w (the) 5140 4806 w (re\255) 5290 4806 w (sult is the pointed\255to \() 720 4916 w 10 /Times-Italic f (n) 1598 4916 w 10 /S f (-) 1648 4916 w 10 /Times-Roman f (1\)\255dimensional array, which itself is immediately converted into a pointer.) 1703 4916 w (For example, consider) 820 5070 w 10 /Courier f (int x[3][5];) 1080 5257 w 10 /Times-Roman f (Here) 720 5444 w 10 /Times-Italic f (x) 941 5444 w 10 /Times-Roman f (is) 1013 5444 w (a) 1108 5444 w (3) 1180 5444 w 10 /S f (\264) 1230 5444 w 10 /Times-Roman f (5) 1285 5444 w (array) 1363 5444 w (of) 1595 5444 w (integers.) 1706 5444 w (When) 2100 5444 w 10 /Times-Italic f (x) 2366 5444 w 10 /Times-Roman f (appears) 2438 5444 w (in) 2770 5444 w (an) 2876 5444 w (expression,) 2999 5444 w (it) 3480 5444 w (is) 3565 5444 w (converted) 3661 5444 w (to) 4083 5444 w (a) 4190 5444 w (pointer) 4263 5444 w (to) 4575 5444 w (\(the) 4682 5444 w (first) 4866 5444 w (of) 5056 5444 w (three\)) 5168 5444 w (5\255membered) 720 5554 w (arrays) 1253 5554 w (of) 1525 5554 w (integers.) 1637 5554 w (In) 2032 5554 w (the) 2144 5554 w (expression) 2295 5554 w (``x[) 2751 5554 w (i) 2916 5554 w (]'',) 2960 5554 w (which) 3113 5554 w (is) 3386 5554 w (equivalent) 3482 5554 w (to) 3927 5554 w (``) 4034 5554 w (*) 4100 5576 w (\(x+i\)'',) 4150 5554 w 10 /Times-Italic f (x) 4470 5554 w 10 /Times-Roman f (is) 4543 5554 w (first) 4639 5554 w (converted) 4829 5554 w (to) 5250 5554 w (a) 5356 5554 w (pointer) 720 5664 w (as) 1037 5664 w (described;) 1154 5664 w (then) 1598 5664 w 10 /Times-Italic f (i) 1804 5664 w 10 /Times-Roman f (is) 1866 5664 w (converted) 1967 5664 w (to) 2394 5664 w (the) 2506 5664 w (type) 2662 5664 w (of) 2868 5664 w 10 /Times-Italic f (x) 2986 5664 w 10 /Times-Roman f (,) 3030 5664 w (which) 3090 5664 w (involves) 3369 5664 w (multiplying) 3743 5664 w 10 /Times-Italic f (i) 4246 5664 w 10 /Times-Roman f (by) 4309 5664 w (the) 4444 5664 w (length) 4601 5664 w (the) 4886 5664 w (object) 5043 5664 w (to) 5322 5664 w (which) 720 5774 w (the) 997 5774 w (pointer) 1152 5774 w (points,) 1468 5774 w (namely) 1771 5774 w (5) 2098 5774 w (integer) 2181 5774 w (objects.) 2491 5774 w (The) 2857 5774 w (results) 3045 5774 w (are) 3338 5774 w (added) 3491 5774 w (and) 3761 5774 w (indirection) 3937 5774 w (applied) 4402 5774 w (to) 4728 5774 w (yield) 4838 5774 w (an) 5070 5774 w (array) 5196 5774 w (\(of) 720 5884 w (5) 871 5884 w (integers\)) 956 5884 w (which) 1340 5884 w (in) 1619 5884 w (turn) 1732 5884 w (is) 1928 5884 w (converted) 2030 5884 w (to) 2458 5884 w (a) 2571 5884 w (pointer) 2650 5884 w (to) 2968 5884 w (the) 3081 5884 w (first) 3238 5884 w (of) 3434 5884 w (the) 3552 5884 w (integers.) 3709 5884 w (If) 4110 5884 w (there) 4211 5884 w (is) 4445 5884 w (another) 4547 5884 w (subscript) 4881 5884 w (the) 5278 5884 w (same argument applies again; this time the result is an integer.) 720 5994 w (It follows from all this that arrays in C are stored row\255wise) 820 6148 w (\(last) 3195 6148 w (subscript) 3393 6148 w (varies) 3780 6148 w (fastest\)) 4044 6148 w (and) 4358 6148 w (that) 4528 6148 w (the) 4704 6148 w (first) 4852 6148 w (subscript) 5039 6148 w (in) 720 6258 w (the) 830 6258 w (declaration) 984 6258 w (helps) 1459 6258 w (determine) 1702 6258 w (the) 2132 6258 w (amount) 2285 6258 w (of) 2616 6258 w (storage) 2730 6258 w (consumed) 3049 6258 w (by) 3485 6258 w (an) 3616 6258 w (array) 3741 6258 w (but) 3976 6258 w (plays) 4135 6258 w (no) 4377 6258 w (other) 4508 6258 w (part) 4744 6258 w (in) 4930 6258 w (subscript) 5039 6258 w (calculations.) 720 6368 w (14.4) 720 6588 w (Labels) 945 6588 w (Labels do not have a type of their own; they are treated as having type ``array of) 820 6720 w 10 /Courier f (int) 4053 6720 w 10 /Times-Roman f (''.) 4233 6720 w (Label) 4374 6720 w (variables) 4627 6720 w (should) 5013 6720 w (be) 5306 6720 w (declared) 720 6830 w (``pointer) 1087 6830 w (to) 1466 6830 w 10 /Courier f (int) 1574 6830 w 10 /Times-Roman f ('';) 1754 6830 w (before) 1878 6830 w (execution) 2162 6830 w (of) 2580 6830 w (a) 2693 6830 w 10 /Courier f (goto) 2767 6830 w 10 /Times-Roman f (referring) 3037 6830 w (to) 3414 6830 w (the) 3521 6830 w (variable,) 3672 6830 w (a) 4047 6830 w (label) 4120 6830 w (\(or) 4343 6830 w (an) 4488 6830 w (expression) 4611 6830 w (deriving) 5067 6830 w (from a label\) should be assigned to the variable.) 720 6940 w (Label variables are a bad idea in general; the) 820 7094 w 10 /Courier f (switch) 2628 7094 w 10 /Times-Roman f (statement makes them almost always unnecessary.) 3013 7094 w cleartomark showpage saveobj restore %%EndPage: 18 18 %%Page: 19 19 /saveobj save def mark 19 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 19) 4341 580 w 10 /Courier f (15.) 720 978 w (Constant expressions) 1020 978 w 10 /Times-Roman f (In) 820 1110 w (several) 934 1110 w (places) 1247 1110 w (C) 1528 1110 w (requires) 1627 1110 w (expressions) 1980 1110 w (which) 2478 1110 w (evaluate) 2754 1110 w (to) 3118 1110 w (a) 3228 1110 w (constant:) 3304 1110 w (after) 3697 1110 w 10 /Courier f (case,) 3946 1110 w 10 /Times-Roman f (as) 4278 1110 w (array) 4393 1110 w (bounds,) 4629 1110 w (and) 4975 1110 w (in) 5151 1110 w (ini\255) 5261 1110 w (tializers.) 720 1220 w (In) 1113 1220 w (the) 1223 1220 w (first) 1372 1220 w (two) 1560 1220 w (cases,) 1737 1220 w (the) 1999 1220 w (expression) 2148 1220 w (can) 2602 1220 w (involve) 2766 1220 w (only) 3092 1220 w (integer) 3296 1220 w (constants,) 3599 1220 w (character) 4022 1220 w (constants,) 4412 1220 w (and) 4835 1220 w 10 /Courier f (sizeof) 5040 1220 w 10 /Times-Roman f (expressions, possibly connected by the binary operators) 720 1330 w 10 /Times-Italic f (+) 1080 1517 w 10 /S f (-) 1223 1517 w 10 /Times-Roman f (*) 1353 1539 w 10 /Times-Italic f (/) 1478 1517 w (%) 1581 1517 w (&) 1739 1517 w 10 /S f (|) 1892 1517 w 10 /Times-Italic f (\223) 1987 1517 w (<<) 2095 1517 w (>>) 2306 1517 w 10 /Times-Roman f (or by the unary operators) 720 1704 w 10 /S f (-) 1080 1891 w 14 /Times-Italic f (\224) 1210 1946 w 10 /Times-Roman f (Parentheses can be used for grouping, but not for function calls.) 720 2078 w (A) 820 2232 w (bit) 920 2232 w (more) 1054 2232 w (latitude) 1287 2232 w (is) 1615 2232 w (permitted) 1711 2232 w (for) 2123 2232 w (initializers;) 2268 2232 w (besides) 2747 2232 w (constant) 3070 2232 w (expressions) 3432 2232 w (as) 3927 2232 w (discussed) 4039 2232 w (above,) 4451 2232 w (one) 4743 2232 w (can) 4916 2232 w (also) 5083 2232 w (ap\255) 5273 2232 w (ply) 720 2342 w (the) 874 2342 w (unary) 1022 2342 w 10 /Courier f (&) 1275 2342 w 10 /Times-Roman f (operator) 1361 2342 w (to) 1719 2342 w (external) 1823 2342 w (scalars,) 2170 2342 w (and) 2492 2342 w (to) 2662 2342 w (external) 2766 2342 w (arrays subscripted with a constant expression.) 3113 2342 w (The unary) 4993 2342 w 10 /Courier f (&) 720 2452 w 10 /Times-Roman f (can) 816 2452 w (also) 990 2452 w (be) 1187 2452 w (applied) 1317 2452 w (implicitly) 1647 2452 w (by) 2074 2452 w (appearance) 2211 2452 w (of) 2695 2452 w (unsubscripted) 2815 2452 w (external) 3407 2452 w (arrays.) 3765 2452 w (The) 4095 2452 w (rule) 4287 2452 w (here) 4479 2452 w (is) 4687 2452 w (that) 4791 2452 w (initializers) 4978 2452 w (must evaluate either to a constant or to the address of an external identifier plus or minus a constant.) 720 2562 w 10 /Courier f (16.) 720 2837 w (Examples.) 1020 2837 w 10 /Times-Roman f (These) 820 2969 w (examples) 1087 2969 w (are) 1493 2969 w (intended) 1643 2969 w (to) 2016 2969 w (illustrate) 2123 2969 w (some) 2502 2969 w (typical) 2742 2969 w (C) 3043 2969 w (constructions) 3139 2969 w (as) 3702 2969 w (well) 3815 2969 w (as) 4017 2969 w (a) 4130 2969 w (serviceable) 4204 2969 w (style) 4682 2969 w (of) 4901 2969 w (writing) 5014 2969 w (C) 5333 2969 w (programs.) 720 3079 w (16.1) 720 3299 w (Inner product) 945 3299 w (This function returns the inner product of its array arguments.) 820 3431 w 10 /Courier f (double inner) 1080 3618 w (\() 1816 3618 w (v1, v2, n) 1892 3618 w (\)) 2448 3618 w (double v1) 1080 3728 w ([) 1636 3728 w (]) 1728 3728 w (, v2) 1804 3728 w ([) 2060 3728 w (]) 2152 3728 w (;) 2228 3728 w ({) 1080 3838 w (double sum) 1440 3948 w (;) 2056 3948 w (int i) 1440 4058 w (;) 1756 4058 w (sum = 0.0) 1440 4168 w (;) 1996 4168 w (for) 1440 4278 w (\() 1696 4278 w (i=0) 1772 4278 w (; itword) 2607 978 w (\)) 2983 978 w (;) 3059 978 w (p) 1800 1088 w 10 /S f (-) 1860 1088 w 10 /Courier f (>count = 1) 1915 1088 w (;) 2531 1088 w (p) 1800 1198 w 10 /S f (-) 1860 1198 w 10 /Courier f (>right = p) 1915 1198 w 10 /S f (-) 2515 1198 w 10 /Courier f (>left = 0) 2570 1198 w (;) 3126 1198 w (return) 1800 1308 w (\() 2176 1308 w (p) 2252 1308 w (\)) 2328 1308 w (;) 2404 1308 w (}) 1440 1418 w (/) 1440 1528 w 10 /Times-Roman f (*) 1500 1550 w 10 /Courier f (Is word repeated?) 1610 1528 w 10 /Times-Roman f (*) 2690 1550 w 10 /Courier f (/) 2740 1528 w (if) 1440 1638 w (\() 1636 1638 w (\() 1728 1638 w (cond=compar) 1804 1638 w (\() 2480 1638 w (p) 2556 1638 w 10 /S f (-) 2616 1638 w 10 /Courier f (>tword, word) 2671 1638 w (\)) 3407 1638 w (\)) 3499 1638 w 10 /Times-Roman f (==) 3635 1638 w 10 /Courier f (0) 3807 1638 w (\)) 3883 1638 w ({) 4019 1638 w (p) 1800 1748 w 10 /S f (-) 1860 1748 w 10 /Courier f (>count) 1915 1748 w 10 /Times-Roman f (++) 2275 1748 w 10 /Courier f (;) 2403 1748 w (return) 1800 1858 w (\() 2176 1858 w (p) 2252 1858 w (\)) 2328 1858 w (;) 2404 1858 w (}) 1440 1968 w (/) 1440 2078 w 10 /Times-Roman f (*) 1500 2100 w 10 /Courier f (Sort into left or right) 1610 2078 w 10 /Times-Roman f (*) 3050 2100 w 10 /Courier f (/) 3100 2078 w (if) 1440 2188 w (\() 1636 2188 w (cond<0) 1712 2188 w (\)) 2088 2188 w (p) 1800 2298 w 10 /S f (-) 1860 2298 w 10 /Courier f (>left = tree) 1915 2298 w (\() 2651 2298 w (p) 2727 2298 w 10 /S f (-) 2787 2298 w 10 /Courier f (>left, word) 2842 2298 w (\)) 3518 2298 w (;) 3594 2298 w (else) 1440 2408 w (p) 1800 2518 w 10 /S f (-) 1860 2518 w 10 /Courier f (>right = tree) 1915 2518 w (\() 2711 2518 w (p) 2787 2518 w 10 /S f (-) 2847 2518 w 10 /Courier f (>right, word) 2902 2518 w (\)) 3638 2518 w (;) 3714 2518 w (return) 1440 2628 w (\() 1816 2628 w (p) 1892 2628 w (\)) 1968 2628 w (;) 2044 2628 w (}) 1080 2738 w (/) 1080 2848 w 10 /Times-Roman f (*) 1140 2870 w (*) 1140 2980 w 10 /Courier f (Print the tree by printing the left subtree, the given node, and the right subtree.) 1250 2958 w 10 /Times-Roman f (*) 1140 3090 w 10 /Courier f (/) 1190 3068 w (tprint) 1080 3178 w (\() 1456 3178 w (p) 1532 3178 w (\)) 1608 3178 w (struct tnode) 1080 3288 w 10 /Times-Roman f (*) 1860 3310 w 10 /Courier f (p) 1910 3288 w (;) 1986 3288 w ({) 1080 3398 w (while) 1440 3508 w (\() 1816 3508 w (p) 1892 3508 w (\)) 1968 3508 w ({) 2104 3508 w (tprint) 1800 3618 w (\() 2176 3618 w (p) 2252 3618 w 10 /S f (-) 2312 3618 w 10 /Courier f (>left) 2367 3618 w (\)) 2683 3618 w (;) 2759 3618 w (printf) 1800 3728 w (\() 2176 3728 w ("%d:) 2252 3728 w (%s\\n", p) 2612 3728 w 10 /S f (-) 3092 3728 w 10 /Courier f (>count, p) 3147 3728 w 10 /S f (-) 3687 3728 w 10 /Courier f (>tword) 3742 3728 w (\)) 4118 3728 w (;) 4194 3728 w (p = p) 1800 3838 w 10 /S f (-) 2100 3838 w 10 /Courier f (>right) 2155 3838 w (;) 2531 3838 w (}) 1440 3948 w (}) 1080 4058 w (/) 1080 4168 w 10 /Times-Roman f (*) 1140 4190 w (*) 1140 4300 w 10 /Courier f (String comparison: return number) 1250 4278 w (\() 3246 4278 w (>, =, <) 3322 4278 w (\)) 3758 4278 w (0) 3894 4278 w 10 /Times-Roman f (*) 1140 4410 w 10 /Courier f (according as s1) 1250 4388 w (\() 2226 4388 w (>, =, <) 2302 4388 w (\)) 2738 4388 w (s2.) 2874 4388 w 10 /Times-Roman f (*) 1140 4520 w 10 /Courier f (/) 1190 4498 w (compar) 1080 4608 w (\() 1456 4608 w (s1, s2) 1532 4608 w (\)) 1908 4608 w (char) 1080 4718 w 10 /Times-Roman f (*) 1380 4740 w 10 /Courier f (s1,) 1430 4718 w 10 /Times-Roman f (*) 1670 4740 w 10 /Courier f (s2) 1720 4718 w (;) 1856 4718 w ({) 1080 4828 w (int c1, c2) 1440 4938 w (;) 2056 4938 w (while) 1440 5103 w (\() 1756 5103 w (\() 1848 5103 w (c1 =) 1924 5103 w 10 /Times-Roman f (*) 2224 5125 w 10 /Courier f (s1) 2274 5103 w 10 /Times-Roman f (++) 2394 5103 w 10 /Courier f (\)) 2522 5103 w 10 /Times-Roman f (==) 2658 5103 w 10 /Courier f (\() 2846 5103 w (c2 =) 2922 5103 w 10 /Times-Roman f (*) 3222 5125 w 10 /Courier f (s2) 3272 5103 w 10 /Times-Roman f (++) 3392 5103 w 10 /Courier f (\)) 3520 5103 w (\)) 3612 5103 w (if) 1800 5213 w (\() 1996 5213 w (c1) 2072 5213 w 10 /Times-Roman f (==) 2192 5213 w 10 /Courier f (\264\\0\264) 2304 5213 w (\)) 2560 5213 w (return) 2160 5323 w (\() 2536 5323 w (0) 2612 5323 w (\)) 2688 5323 w (;) 2764 5323 w (return) 1440 5433 w (\() 1816 5433 w (c2) 1892 5433 w 10 /S f (-) 2012 5433 w 10 /Courier f (c1) 2067 5433 w (\)) 2203 5433 w (;) 2279 5433 w (}) 1080 5543 w (/) 1080 5653 w 10 /Times-Roman f (*) 1140 5675 w (*) 1140 5785 w 10 /Courier f (String copy: copy s1 into s2 until the null) 1250 5763 w 10 /Times-Roman f (*) 1140 5895 w 10 /Courier f (character appears.) 1250 5873 w 10 /Times-Roman f (*) 1140 6005 w 10 /Courier f (/) 1190 5983 w (copy) 1080 6093 w (\() 1336 6093 w (s1, s2) 1412 6093 w (\)) 1788 6093 w (char) 1080 6203 w 10 /Times-Roman f (*) 1380 6225 w 10 /Courier f (s1,) 1430 6203 w 10 /Times-Roman f (*) 1670 6225 w 10 /Courier f (s2) 1720 6203 w (;) 1856 6203 w ({) 1080 6313 w (while) 1440 6423 w (\() 1756 6423 w 10 /Times-Roman f (*) 1832 6445 w 10 /Courier f (s2) 1882 6423 w 10 /Times-Roman f (++) 2002 6423 w 10 /Courier f (=) 2174 6423 w 10 /Times-Roman f (*) 2294 6445 w 10 /Courier f (s1) 2344 6423 w 10 /Times-Roman f (++) 2464 6423 w 10 /Courier f (\)) 2592 6423 w (;) 2668 6423 w (}) 1080 6533 w (/) 1080 6643 w 10 /Times-Roman f (*) 1140 6665 w (*) 1140 6775 w 10 /Courier f (Node allocation: return pointer to a free node.) 1250 6753 w 10 /Times-Roman f (*) 1140 6885 w 10 /Courier f (Bomb out when all are gone.) 1250 6863 w (Just for fun, there) 2990 6863 w 10 /Times-Roman f (*) 1140 6995 w 10 /Courier f (is a mechanism for using nodes that have been) 1250 6973 w 10 /Times-Roman f (*) 1140 7105 w 10 /Courier f (freed, even though no one here calls "free.") 1250 7083 w 10 /Times-Roman f (*) 1140 7215 w 10 /Courier f (/) 1190 7193 w (struct tnode) 1080 7303 w 10 /Times-Roman f (*) 1860 7325 w 10 /Courier f (alloc) 1910 7303 w (\() 2226 7303 w (\)) 2318 7303 w cleartomark showpage saveobj restore %%EndPage: 21 21 %%Page: 22 22 /saveobj save def mark 22 pagesetup 10 /Courier f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 22) 720 580 w 10 /Courier f ({) 1080 978 w (struct tnode) 1440 1088 w 10 /Times-Roman f (*) 2220 1110 w 10 /Courier f (t) 2270 1088 w (;) 2346 1088 w (if) 1440 1253 w (\() 1636 1253 w (freep) 1712 1253 w (\)) 2028 1253 w ({) 2164 1253 w (t = freep) 1800 1363 w (;) 2356 1363 w (freep = freep) 1800 1473 w 10 /S f (-) 2580 1473 w 10 /Courier f (>left) 2635 1473 w (;) 2951 1473 w (return) 1800 1583 w (\() 2176 1583 w (t) 2252 1583 w (\)) 2328 1583 w (;) 2404 1583 w (}) 1440 1693 w (if) 1440 1803 w (\() 1636 1803 w 10 /S f (--) 1712 1803 w 10 /Courier f (nnodes < 0) 1822 1803 w (\)) 2438 1803 w ({) 2574 1803 w (printf) 1800 1913 w (\() 2176 1913 w ("Out of space\\n") 2252 1913 w (\)) 3228 1913 w (;) 3304 1913 w (exit) 1800 2023 w (\() 2056 2023 w (\)) 2148 2023 w (;) 2224 2023 w (}) 1440 2133 w (return) 1440 2243 w (\() 1816 2243 w (spacep) 1892 2243 w 10 /Times-Roman f (++) 2252 2243 w 10 /Courier f (\)) 2380 2243 w (;) 2456 2243 w (}) 1080 2353 w (/) 1080 2463 w 10 /Times-Roman f (*) 1140 2485 w (*) 1140 2595 w 10 /Courier f (The uncalled routine which puts a node on the free list.) 1250 2573 w 10 /Times-Roman f (*) 1140 2705 w 10 /Courier f (/) 1190 2683 w (free) 1080 2793 w (\() 1336 2793 w (p) 1412 2793 w (\)) 1488 2793 w (struct tnode) 1080 2903 w 10 /Times-Roman f (*) 1860 2925 w 10 /Courier f (p) 1910 2903 w (;) 1986 2903 w ({) 1080 3013 w (p) 1440 3123 w 10 /S f (-) 1500 3123 w 10 /Courier f (>left = freep) 1555 3123 w (;) 2351 3123 w (freep = p) 1440 3233 w (;) 1996 3233 w (}) 1080 3343 w 10 /Times-Roman f (To) 720 3530 w (illustrate) 863 3530 w (a) 1245 3530 w (slightly) 1321 3530 w (different) 1654 3530 w (technique) 2029 3530 w (of) 2449 3530 w (handling) 2564 3530 w (the) 2946 3530 w (same) 3100 3530 w (problem,) 3337 3530 w (we) 3727 3530 w (will) 3875 3530 w (repeat) 4063 3530 w (fragments) 4338 3530 w (of) 4769 3530 w (this) 4884 3530 w (example) 5062 3530 w (with) 720 3640 w (the) 928 3640 w (tree) 1080 3640 w (nodes) 1259 3640 w (treated) 1522 3640 w (explicitly) 1823 3640 w (as) 2231 3640 w (members) 2344 3640 w (of) 2740 3640 w (an) 2853 3640 w (array.) 2977 3640 w (The) 3260 3640 w (fundamental) 3444 3640 w (change) 3972 3640 w (is) 4283 3640 w (to) 4379 3640 w (deal) 4486 3640 w (with) 4681 3640 w (the) 4888 3640 w (subscript) 5039 3640 w (of the array member under discussion, instead of a pointer to it.) 720 3750 w (The) 3302 3750 w 10 /Courier f (struct) 3482 3750 w 10 /Times-Roman f (declaration becomes) 3867 3750 w 10 /Courier f (struct tnode {) 1080 3937 w (char tword) 1440 4047 w ([) 2056 4047 w (wsize) 2132 4047 w (]) 2448 4047 w (;) 2524 4047 w (int count;) 1440 4157 w (int left;) 1440 4267 w (int right;) 1440 4377 w (};) 1080 4487 w 10 /Times-Roman f (and) 720 4674 w 10 /Times-Italic f (alloc) 889 4674 w 10 /Times-Roman f (becomes) 1114 4674 w 10 /Courier f (alloc) 1080 4861 w (\() 1396 4861 w (\)) 1488 4861 w ({) 1080 4971 w (int t;) 1440 5081 w (t =) 1440 5246 w 10 /S f (--) 1680 5246 w 10 /Courier f (nnodes;) 1790 5246 w (if) 1440 5356 w (\() 1636 5356 w (t<=0) 1712 5356 w (\)) 1968 5356 w ({) 2104 5356 w (printf) 1800 5466 w (\() 2176 5466 w ("Out of space\\n") 2252 5466 w (\)) 3228 5466 w (;) 3304 5466 w (exit) 1800 5576 w (\() 2056 5576 w (\)) 2148 5576 w (;) 2224 5576 w (}) 1440 5686 w (return) 1440 5796 w (\() 1816 5796 w (t) 1892 5796 w (\)) 1968 5796 w (;) 2044 5796 w (}) 1080 5906 w 10 /Times-Roman f (The) 720 6093 w 10 /Times-Italic f (free) 904 6093 w 10 /Times-Roman f (stuff) 1088 6093 w (has) 1300 6093 w (disappeared) 1462 6093 w (because) 1967 6093 w (if) 2311 6093 w (we) 2401 6093 w (deal) 2546 6093 w (with) 2741 6093 w (exclusively) 2949 6093 w (with) 3434 6093 w (subscripts) 3642 6093 w (some) 4072 6093 w (sort) 4313 6093 w (of) 4493 6093 w (map) 4606 6093 w (has) 4808 6093 w (to) 4971 6093 w (be) 5079 6093 w (kept,) 5203 6093 w (which is too much trouble.) 720 6203 w (Now the) 820 6357 w 10 /Times-Italic f (tree) 1186 6357 w 10 /Times-Roman f (routine returns a subscript also, and it becomes:) 1366 6357 w 10 /Courier f (tree) 1080 6544 w (\() 1336 6544 w (p, word) 1412 6544 w (\)) 1848 6544 w (char word) 1080 6654 w ([) 1636 6654 w (]) 1728 6654 w (;) 1804 6654 w ({) 1080 6764 w (int cond;) 1440 6874 w (if) 1440 7039 w (\() 1636 7039 w (p) 1712 7039 w 10 /Times-Roman f (==) 1772 7039 w 10 /Courier f (0) 1884 7039 w (\)) 1960 7039 w ({) 2096 7039 w (p = alloc) 1800 7149 w (\() 2356 7149 w (\)) 2448 7149 w (;) 2524 7149 w (copy) 1800 7259 w (\() 2056 7259 w (word, space) 2132 7259 w ([) 2808 7259 w (p) 2884 7259 w (]) 2960 7259 w (.tword) 3036 7259 w (\)) 3412 7259 w (;) 3488 7259 w cleartomark showpage saveobj restore %%EndPage: 22 22 %%Page: 23 23 /saveobj save def mark 23 pagesetup 10 /Courier f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 23) 4341 580 w 10 /Courier f (space) 1800 978 w ([) 2116 978 w (p) 2192 978 w (]) 2268 978 w (.count = 1;) 2344 978 w (space) 1800 1088 w ([) 2116 1088 w (p) 2192 1088 w (]) 2268 1088 w (.right = space) 2344 1088 w ([) 3200 1088 w (p) 3276 1088 w (]) 3352 1088 w (.left = 0;) 3428 1088 w (return) 1800 1198 w (\() 2176 1198 w (p) 2252 1198 w (\)) 2328 1198 w (;) 2404 1198 w (}) 1440 1308 w (if) 1440 1418 w (\() 1636 1418 w (\() 1728 1418 w (cond=compar) 1804 1418 w (\() 2480 1418 w (space) 2556 1418 w ([) 2872 1418 w (p) 2948 1418 w (]) 3024 1418 w (.tword, word) 3100 1418 w (\)) 3836 1418 w (\)) 3928 1418 w 10 /Times-Roman f (==) 4064 1418 w 10 /Courier f (0) 4236 1418 w (\)) 4312 1418 w ({) 4448 1418 w (space) 1800 1528 w ([) 2116 1528 w (p) 2192 1528 w (]) 2268 1528 w (.count) 2344 1528 w 10 /Times-Roman f (++) 2704 1528 w 10 /Courier f (;) 2816 1528 w (return) 1800 1638 w (\() 2176 1638 w (p) 2252 1638 w (\)) 2328 1638 w (;) 2404 1638 w (}) 1440 1748 w (if) 1440 1858 w (\() 1636 1858 w (cond<0) 1712 1858 w (\)) 2088 1858 w (space) 1800 1968 w ([) 2116 1968 w (p) 2192 1968 w (]) 2268 1968 w (.left = tree) 2344 1968 w (\() 3080 1968 w (space) 3156 1968 w ([) 3472 1968 w (p) 3548 1968 w (]) 3624 1968 w (.left, word) 3700 1968 w (\)) 4376 1968 w (;) 4452 1968 w (else) 1440 2078 w (space) 1800 2188 w ([) 2116 2188 w (p) 2192 2188 w (]) 2268 2188 w (.right = tree) 2344 2188 w (\() 3140 2188 w (space) 3216 2188 w ([) 3532 2188 w (p) 3608 2188 w (]) 3684 2188 w (.right, word) 3760 2188 w (\)) 4496 2188 w (;) 4572 2188 w (return) 1440 2298 w (\() 1816 2298 w (p) 1892 2298 w (\)) 1968 2298 w (;) 2044 2298 w (}) 1080 2408 w 10 /Times-Roman f (The) 720 2595 w (other) 902 2595 w (routines) 1134 2595 w (are) 1483 2595 w (changed) 1631 2595 w (similarly.) 1990 2595 w (It) 2423 2595 w (must) 2511 2595 w (be) 2733 2595 w (pointed) 2854 2595 w (out) 3181 2595 w (that) 3336 2595 w (this) 3513 2595 w (version) 3685 2595 w (is) 4006 2595 w (noticeably) 4100 2595 w (less) 4543 2595 w (efficient) 4720 2595 w (than) 5079 2595 w (the) 5278 2595 w (first) 720 2705 w (because) 919 2705 w (of) 1272 2705 w (the) 1393 2705 w (multiplications) 1553 2705 w (which) 2192 2705 w (must) 2474 2705 w (be) 2707 2705 w (done) 2839 2705 w (to) 3071 2705 w (compute) 3187 2705 w (an) 3569 2705 w (offset) 3701 2705 w (in) 3966 2705 w 10 /Times-Italic f (space) 4082 2705 w 10 /Times-Roman f (corresponding) 4346 2705 w (to) 4954 2705 w (the) 5069 2705 w (sub\255) 5228 2705 w (scripts.) 720 2815 w (The observation that subscripts) 820 2969 w (\() 2107 2969 w (like ``a) 2156 2969 w ([) 2457 2969 w (i) 2506 2969 w (]) 2550 2969 w ('') 2599 2969 w (\)) 2681 2969 w (are less efficient than pointer indirection) 2755 2969 w (\() 4412 2969 w (like ``) 4461 2969 w (*) 4702 2991 w (ap'') 4752 2969 w (\)) 4928 2969 w (holds) 5002 2969 w (true) 5245 2969 w (independently) 720 3079 w (of) 1319 3079 w (whether) 1435 3079 w (or) 1789 3079 w (not) 1905 3079 w (structures) 2066 3079 w (are) 2487 3079 w (involved.) 2641 3079 w (There) 3074 3079 w (are) 3339 3079 w (of) 3493 3079 w (course) 3609 3079 w (many) 3902 3079 w (situations) 4156 3079 w (where) 4572 3079 w (subscripts) 4847 3079 w (are) 5279 3079 w (indispensable, and others where the loss in efficiency is worth a gain in clarity.) 720 3189 w (16.3) 720 3409 w (Formatted output) 945 3409 w (Here) 820 3541 w (is) 1039 3541 w (a) 1132 3541 w (simplified) 1202 3541 w (version) 1634 3541 w (of) 1954 3541 w (the) 2063 3541 w 10 /Times-Italic f (printf) 2211 3541 w 10 /Times-Roman f (routine,) 2460 3541 w (which) 2794 3541 w (is) 3065 3541 w (available) 3159 3541 w (in) 3546 3541 w (the) 3651 3541 w (C) 3800 3541 w (library.) 3894 3541 w (It) 4237 3541 w (accepts) 4325 3541 w (a) 4645 3541 w (string) 4716 3541 w (\() 4987 3541 w (character) 5036 3541 w (array) 720 3651 w (\)) 940 3651 w (as) 1015 3651 w (first) 1124 3651 w (argument,) 1311 3651 w (and) 1739 3651 w (prints) 1909 3651 w (subsequent) 2163 3651 w (arguments) 2633 3651 w (according to specifications contained in this format string.) 3075 3651 w (Most) 720 3761 w (characters) 955 3761 w (in) 1387 3761 w (the) 1494 3761 w (string) 1645 3761 w (are) 1902 3761 w (simply) 2052 3761 w (copied) 2354 3761 w (to) 2649 3761 w (the) 2756 3761 w (output;) 2907 3761 w (two\255character) 3220 3761 w (sequences) 3796 3761 w (beginning) 4229 3761 w (with) 4659 3761 w (``%'') 4867 3761 w (specify) 5112 3761 w (that the next argument should be printed in a style as follows:) 720 3871 w (%d) 1080 4058 w (decimal number) 1440 4058 w (%o) 1080 4168 w (octal number) 1440 4168 w (%c) 1080 4278 w 8 /Times-Roman f (ASCII) 1440 4278 w 10 /Times-Roman f (character, or 2 characters if upper character is not null) 1674 4278 w (%s) 1080 4388 w (string) 1440 4388 w (\() 1709 4388 w (null\255terminated array of characters) 1758 4388 w (\)) 3155 4388 w (%f) 1080 4498 w (floating\255point number) 1440 4498 w (The) 720 4685 w (actual) 910 4685 w (parameters) 1183 4685 w (for) 1655 4685 w (each) 1806 4685 w (function) 2023 4685 w (call) 2391 4685 w (are) 2570 4685 w (laid) 2726 4685 w (out) 2911 4685 w (contiguously) 3074 4685 w (in) 3627 4685 w (increasing) 3741 4685 w (storage) 4187 4685 w (locations;) 4511 4685 w (therefore,) 4936 4685 w (a) 5356 4685 w (function) 720 4795 w (with) 1085 4795 w (a) 1295 4795 w (variable) 1371 4795 w (number) 1724 4795 w (of) 2061 4795 w (arguments) 2176 4795 w (may) 2624 4795 w (take) 2828 4795 w (the) 3026 4795 w (address) 3180 4795 w (of) 3511 4795 w (\() 3642 4795 w (say) 3691 4795 w (\)) 3840 4795 w (its) 3921 4795 w (first) 4048 4795 w (argument,) 4241 4795 w (and) 4675 4795 w (access) 4851 4795 w (the) 5137 4795 w (re\255) 5290 4795 w (maining) 720 4905 w (arguments) 1080 4905 w (by) 1528 4905 w (use) 1660 4905 w (of) 1825 4905 w (subscripting) 1940 4905 w (\() 2477 4905 w (regarding) 2526 4905 w (the) 2940 4905 w (arguments) 3094 4905 w (as) 3542 4905 w (an) 3657 4905 w (array) 3783 4905 w (\)) 4003 4905 w (or) 4084 4905 w (by) 4199 4905 w (indirection) 4331 4905 w (combined) 4796 4905 w (with) 5222 4905 w (pointer incrementation.) 720 5015 w (If) 820 5169 w (in) 912 5169 w (such) 1016 5169 w (a) 1225 5169 w (situation) 1295 5169 w (the) 1666 5169 w (arguments) 1814 5169 w (have) 2256 5169 w (mixed) 2470 5169 w (types,) 2746 5169 w (or) 3008 5169 w (if) 3117 5169 w (in) 3204 5169 w (general) 3309 5169 w (one) 3629 5169 w (wishes) 3800 5169 w (to) 4099 5169 w (insist) 4204 5169 w (that) 4443 5169 w (an) 4620 5169 w (lvalue) 4741 5169 w (should) 5012 5169 w (be) 5306 5169 w (treated) 720 5279 w (as) 1023 5279 w (having) 1138 5279 w (a) 1442 5279 w (given) 1518 5279 w (type,) 1772 5279 w (then) 2001 5279 w 10 /Courier f (struct) 2240 5279 w 10 /Times-Roman f (declarations) 2632 5279 w (like) 3146 5279 w (those) 3328 5279 w (illustrated) 3571 5279 w (below) 4003 5279 w (will) 4279 5279 w (be) 4466 5279 w (useful.) 4591 5279 w (It) 4916 5279 w (should) 5008 5279 w (be) 5306 5279 w (evident, though, that such techniques are implementation dependent.) 720 5389 w 10 /Times-Italic f (Printf) 820 5543 w 10 /Times-Roman f (depends) 1083 5543 w (as) 1439 5543 w (well) 1551 5543 w (on) 1752 5543 w (the) 1881 5543 w (fact) 2032 5543 w (that) 2210 5543 w 10 /Courier f (char) 2424 5543 w 10 /Times-Roman f (and) 2693 5543 w 10 /Courier f (float) 2866 5543 w 10 /Times-Roman f (arguments) 3195 5543 w (are) 3640 5543 w (widened) 3790 5543 w (respectively) 4157 5543 w (to) 4668 5543 w 10 /Courier f (int) 4776 5543 w 10 /Times-Roman f (and) 4986 5543 w 10 /Courier f (dou\255) 5160 5543 w (ble) 720 5653 w 10 /Times-Roman f (,) 900 5653 w (so) 959 5653 w (there) 1082 5653 w (are) 1315 5653 w (effectively) 1470 5653 w (only) 1929 5653 w (two) 2140 5653 w (sizes) 2323 5653 w (of) 2550 5653 w (arguments) 2666 5653 w (to) 3115 5653 w (deal) 3226 5653 w (with.) 3425 5653 w 10 /Times-Italic f (Printf) 3686 5653 w 10 /Times-Roman f (calls) 3953 5653 w (the) 4169 5653 w (library) 4324 5653 w (routines) 4623 5653 w 10 /Times-Italic f (putchar) 4978 5653 w 10 /Times-Roman f (to) 5322 5653 w (write out single characters and) 720 5763 w 10 /Times-Italic f (ftoa) 1964 5763 w 10 /Times-Roman f (to dispose of floating\255point numbers.) 2145 5763 w 10 /Courier f (printf) 1080 5950 w (\() 1456 5950 w (fmt, args) 1532 5950 w (\)) 2088 5950 w (char fmt) 1080 6060 w ([) 1576 6060 w (]) 1668 6060 w (;) 1744 6060 w ({) 1080 6170 w (char) 1440 6280 w 10 /Times-Roman f (*) 1740 6302 w 10 /Courier f (s) 1790 6280 w (;) 1866 6280 w (struct { char) 1440 6390 w 10 /Times-Roman f (**) 2280 6412 w 10 /Courier f (charpp) 2380 6390 w (; };) 2756 6390 w (struct { double) 1440 6500 w 10 /Times-Roman f (*) 2400 6522 w 10 /Courier f (doublep) 2450 6500 w (; };) 2886 6500 w (int) 1440 6610 w 10 /Times-Roman f (*) 1680 6632 w 10 /Courier f (ap, x, c) 1730 6610 w (;) 2226 6610 w (ap = &args) 1440 6775 w (;) 2056 6775 w (/) 2940 6775 w 10 /Times-Roman f (*) 3000 6797 w 10 /Courier f (argument pointer) 3110 6775 w 10 /Times-Roman f (*) 4130 6797 w 10 /Courier f (/) 4180 6775 w (for \( ; ; \) {) 1440 6885 w (while) 1800 6995 w (\() 2116 6995 w (\() 2208 6995 w (c =) 2284 6995 w 10 /Times-Roman f (*) 2524 7017 w 10 /Courier f (fmt) 2574 6995 w 10 /Times-Roman f (++) 2754 6995 w 10 /Courier f (\)) 2882 6995 w (!= \264%\264) 3018 6995 w (\)) 3394 6995 w ({) 3530 6995 w (if) 2160 7105 w (\() 2296 7105 w (c) 2372 7105 w 10 /Times-Roman f (==) 2492 7105 w 10 /Courier f (\264\\0\264) 2664 7105 w (\)) 2920 7105 w (return) 2520 7215 w (;) 2896 7215 w cleartomark showpage saveobj restore %%EndPage: 23 23 %%Page: 24 24 /saveobj save def mark 24 pagesetup 10 /Courier f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 24) 720 580 w 10 /Courier f (putchar) 2160 978 w (\() 2596 978 w (c) 2672 978 w (\)) 2748 978 w (;) 2824 978 w (}) 1800 1088 w (switch) 1800 1198 w (\() 2236 1198 w (c =) 2312 1198 w 10 /Times-Roman f (*) 2552 1220 w 10 /Courier f (fmt) 2602 1198 w 10 /Times-Roman f (++) 2782 1198 w 10 /Courier f (\)) 2910 1198 w ({) 3046 1198 w (/) 1800 1308 w 10 /Times-Roman f (*) 1860 1330 w 10 /Courier f (decimal) 1970 1308 w 10 /Times-Roman f (*) 2450 1330 w 10 /Courier f (/) 2500 1308 w (case \264d) 1800 1418 w (\264:) 2236 1418 w (x =) 2160 1528 w 10 /Times-Roman f (*) 2400 1550 w 10 /Courier f (ap) 2450 1528 w 10 /Times-Roman f (++) 2570 1528 w 10 /Courier f (;) 2698 1528 w (if) 2160 1638 w (\() 2296 1638 w (x < 0) 2372 1638 w (\)) 2688 1638 w ({) 2824 1638 w (x = ) 2520 1748 w 10 /S f (-) 2760 1748 w 10 /Courier f (x) 2815 1748 w (;) 2891 1748 w (if) 2520 1858 w (\() 2656 1858 w (x<0) 2732 1858 w (\)) 2928 1858 w ({) 3064 1858 w (/) 3244 1858 w 10 /Times-Roman f (*) 3304 1880 w 10 /Courier f (is ) 3414 1858 w 10 /S f (-) 3594 1858 w 10 /Courier f (infinity) 3709 1858 w 10 /Times-Roman f (*) 4249 1880 w 10 /Courier f (/) 4299 1858 w (printf) 2880 1968 w (\() 3256 1968 w (") 3332 1968 w 10 /S f (-) 3392 1968 w 10 /Courier f (32768") 3447 1968 w (\)) 3823 1968 w (;) 3899 1968 w (continue) 2880 2078 w (;) 3376 2078 w (}) 2520 2188 w (putchar) 2520 2298 w (\() 2956 2298 w (\264) 3032 2298 w 10 /S f (-) 3092 2298 w 10 /Courier f (\264) 3147 2298 w (\)) 3223 2298 w (;) 3299 2298 w (}) 2160 2408 w (printd) 2160 2518 w (\() 2536 2518 w (x) 2612 2518 w (\)) 2688 2518 w (;) 2764 2518 w (continue) 2160 2628 w (;) 2656 2628 w (/) 1800 2738 w 10 /Times-Roman f (*) 1860 2760 w 10 /Courier f (octal) 1970 2738 w 10 /Times-Roman f (*) 2330 2760 w 10 /Courier f (/) 2380 2738 w (case \264o\264:) 1800 2848 w (printo) 2160 2958 w (\() 2536 2958 w 10 /Times-Roman f (*) 2612 2980 w 10 /Courier f (ap) 2662 2958 w 10 /Times-Roman f (++) 2782 2958 w 10 /Courier f (\)) 2910 2958 w (;) 2986 2958 w (continue) 2160 3068 w (;) 2656 3068 w (/) 1800 3178 w 10 /Times-Roman f (*) 1860 3200 w 10 /Courier f (float, double) 1970 3178 w 10 /Times-Roman f (*) 2810 3200 w 10 /Courier f (/) 2860 3178 w (case) 1800 3288 w (\264f) 2132 3288 w (\264:) 2268 3288 w (/) 2160 3398 w 10 /Times-Roman f (*) 2220 3420 w 10 /Courier f (let ftoa do the real work) 2330 3398 w 10 /Times-Roman f (*) 3890 3420 w 10 /Courier f (/) 3940 3398 w (ftoa) 2160 3508 w (\() 2416 3508 w 10 /Times-Roman f (*) 2492 3530 w 10 /Courier f (ap.doublep) 2542 3508 w 10 /Times-Roman f (++) 3142 3508 w 10 /Courier f (\)) 3270 3508 w (;) 3346 3508 w (continue) 2160 3618 w (;) 2656 3618 w (/) 1800 3728 w 10 /Times-Roman f (*) 1860 3750 w 10 /Courier f (character) 1970 3728 w 10 /Times-Roman f (*) 2570 3750 w 10 /Courier f (/) 2620 3728 w (case \264c\264:) 1800 3838 w (putchar) 2160 3948 w (\() 2596 3948 w 10 /Times-Roman f (*) 2672 3970 w 10 /Courier f (ap) 2722 3948 w 10 /Times-Roman f (++) 2842 3948 w 10 /Courier f (\)) 2970 3948 w (;) 3046 3948 w (continue) 2160 4058 w (;) 2656 4058 w (/) 1800 4168 w 10 /Times-Roman f (*) 1860 4190 w 10 /Courier f (string) 1970 4168 w 10 /Times-Roman f (*) 2390 4190 w 10 /Courier f (/) 2440 4168 w (case \264s\264:) 1800 4278 w (s =) 2160 4388 w 10 /Times-Roman f (*) 2400 4410 w 10 /Courier f (ap.charpp) 2450 4388 w 10 /Times-Roman f (++) 2990 4388 w 10 /Courier f (;) 3118 4388 w (while) 2160 4498 w (\() 2476 4498 w (c =) 2552 4498 w 10 /Times-Roman f (*) 2792 4520 w 10 /Courier f (s) 2842 4498 w 10 /Times-Roman f (++) 2902 4498 w 10 /Courier f (\)) 3030 4498 w (putchar) 2520 4608 w (\() 2956 4608 w (c) 3032 4608 w (\)) 3108 4608 w (;) 3184 4608 w (continue) 2160 4718 w (;) 2656 4718 w (}) 1800 4828 w (putchar) 1800 4938 w (\() 2236 4938 w (c) 2312 4938 w (\)) 2388 4938 w (;) 2464 4938 w (}) 1440 5048 w (}) 1080 5158 w (/) 1080 5268 w 10 /Times-Roman f (*) 1140 5290 w (*) 1140 5400 w 10 /Courier f (Print n in decimal) 1250 5378 w (; n must be non\255negative) 2346 5378 w 10 /Times-Roman f (*) 1140 5510 w 10 /Courier f (/) 1190 5488 w (printd) 1080 5598 w (\() 1456 5598 w (n) 1532 5598 w (\)) 1608 5598 w ({) 1080 5708 w (int a) 1440 5818 w (;) 1756 5818 w (if) 1440 5928 w (\() 1636 5928 w (a=n/10) 1712 5928 w (\)) 2088 5928 w (printd) 1800 6038 w (\() 2176 6038 w (a) 2252 6038 w (\)) 2328 6038 w (;) 2404 6038 w (putchar) 1440 6148 w (\() 1876 6148 w (n%10 + \2640\264) 1952 6148 w (\)) 2568 6148 w (;) 2644 6148 w (}) 1080 6258 w (/) 1080 6368 w 10 /Times-Roman f (*) 1140 6390 w (*) 1140 6500 w 10 /Courier f (Print n in octal, with exactly 1 leading 0) 1250 6478 w 10 /Times-Roman f (*) 1140 6610 w 10 /Courier f (/) 1190 6588 w (printo) 1080 6698 w (\() 1456 6698 w (n) 1532 6698 w (\)) 1608 6698 w ({) 1080 6808 w (if) 1440 6918 w (\() 1636 6918 w (n) 1712 6918 w (\)) 1788 6918 w (printo) 1800 7028 w (\() 2176 7028 w (\() 2268 7028 w (n>>3) 2344 7028 w (\)) 2600 7028 w (&017777) 2676 7028 w (\)) 3112 7028 w (;) 3188 7028 w (putchar) 1440 7138 w (\() 1876 7138 w (\() 1968 7138 w (n&07) 2044 7138 w (\)) 2300 7138 w (+\2640\264) 2376 7138 w (\)) 2632 7138 w (;) 2708 7138 w (}) 1080 7248 w cleartomark showpage saveobj restore %%EndPage: 24 24 %%Page: 25 25 /saveobj save def mark 25 pagesetup 10 /Courier f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 25) 4341 580 w 10 /Times-Roman f (REFERENCES) 2745 1198 w (1. Johnson,) 720 1473 w (S.) 1299 1473 w (C.,) 1406 1473 w (and) 1549 1473 w (Kernighan,) 1719 1473 w (B.) 2191 1473 w (W.) 2309 1473 w (``The) 2479 1473 w (Programming) 2726 1473 w (Language) 3302 1473 w (B.'') 3721 1473 w (Comp.) 3905 1473 w (Sci.) 4201 1473 w (Tech.) 4380 1473 w (Rep.) 4630 1473 w (#8.,) 4842 1473 w (Bell) 5018 1473 w (Lab\255) 5212 1473 w (oratories, 1972.) 920 1583 w (2. Ritchie,) 720 1759 w (D.) 1270 1759 w (M.,) 1403 1759 w (and) 1578 1759 w (Thompson,) 1758 1759 w (K.) 2247 1759 w (L.) 2380 1759 w (``The) 2527 1759 w 8 /Times-Roman f (UNIX) 2784 1759 w 10 /Times-Roman f (Time\255sharing) 3020 1759 w (System.'') 3594 1759 w (C.) 4041 1759 w (ACM) 4169 1759 w 10 /Courier f (7,) 4433 1759 w 10 /Times-Roman f (17,) 4624 1759 w (July,) 4785 1759 w (1974,) 5013 1759 w (pp.) 5275 1759 w (365\255375.) 920 1869 w (3. Peterson,) 720 2045 w (T.) 1320 2045 w (G.,) 1437 2045 w (and) 1590 2045 w (Lesk,) 1766 2045 w (M.) 2017 2045 w (E.) 2163 2045 w (``A) 2306 2045 w (User's) 2476 2045 w (Guide) 2768 2045 w (to) 3044 2045 w (the) 3154 2045 w (C) 3308 2045 w (Language) 3407 2045 w (on) 3832 2045 w (the) 3964 2045 w (IBM) 4118 2045 w (370.'') 4339 2045 w (Internal) 4637 2045 w (Memoran\255) 4979 2045 w (dum, Bell Laboratories, 1974.) 920 2155 w (4. Thompson, K. L., and Ritchie, D. M.) 720 2331 w 8 /Times-Italic f (UNIX) 2440 2331 w 10 /Times-Italic f (Programmer's Manual.) 2652 2331 w 10 /Times-Roman f (Bell Laboratories, 1973.) 3651 2331 w (5. Lesk, M. E., and Barres, B. A.) 720 2518 w (``The) 2182 2518 w 8 /Times-Roman f (GCOS) 2428 2518 w 10 /Times-Roman f (C Library.'') 2668 2518 w (Internal memorandum, Bell Laboratories, 1974.) 3200 2518 w (6. Kernighan,) 720 2705 w (B.) 1397 2705 w (W.) 1520 2705 w (``Programming) 1695 2705 w (in) 2342 2705 w (C) 2452 2705 w 10 /S f (-) 2519 2705 w 10 /Times-Roman f (A) 2606 2705 w (Tutorial.'') 2710 2705 w (Unpublished) 3180 2705 w (internal) 3723 2705 w (memorandum,) 4060 2705 w (Bell) 4672 2705 w (Laboratories,) 4871 2705 w (1974.) 920 2815 w cleartomark showpage saveobj restore %%EndPage: 25 25 %%Page: 26 26 /saveobj save def mark 26 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 26) 720 580 w 10 /Times-Roman f (APPENDIX 1) 2775 1143 w (Syntax Summary) 2714 1286 w (1.) 1020 1561 w (Expressions.) 1145 1561 w 10 /Times-Italic f (expression:) 1380 1858 w (primary) 1740 1968 w 10 /Times-Roman f (*) 1740 2100 w 10 /Times-Italic f (expression) 1815 2078 w 10 /Courier f (&) 1740 2188 w 10 /Times-Italic f (expression) 1825 2188 w 10 /S f (-) 1740 2298 w 10 /Times-Italic f (expression) 1820 2298 w 10 /Courier f (!) 1740 2408 w 10 /Times-Italic f (expression) 1825 2408 w 14 /Times-Italic f (\224) 1740 2573 w 10 /Times-Italic f (expression) 1811 2518 w 10 /Times-Roman f (++) 1740 2628 w 10 /Times-Italic f (lvalue) 1877 2628 w 10 /S f (--) 1740 2738 w 10 /Times-Italic f (lvalue) 1875 2738 w (lvalue) 1740 2848 w 10 /Times-Roman f (++) 2009 2848 w 10 /Times-Italic f (lvalue) 1740 2958 w 10 /Times-Roman f 10 /S f (--) 2009 2958 w 10 /Times-Italic f 10 /Courier f (sizeof) 1740 3068 w 10 /Times-Italic f (expression) 2160 3068 w (expression binop expression) 1740 3178 w (expression) 1740 3288 w 10 /Courier f (?) 2192 3288 w 10 /Times-Italic f (expression) 2277 3288 w 10 /Courier f (:) 2729 3288 w 10 /Times-Italic f (expression) 2814 3288 w (lvalue asgnop expression) 1740 3398 w (expression) 1740 3508 w 10 /Courier f (,) 2192 3508 w 10 /Times-Italic f (expression) 2277 3508 w (primary:) 1380 3695 w (identifier) 1740 3805 w (constant) 1740 3915 w (string) 1740 4025 w 10 /Courier f (\() 1740 4135 w 10 /Times-Italic f (expression) 1860 4135 w 10 /Courier f (\)) 2312 4135 w 10 /Times-Italic f (primary) 1740 4245 w 10 /Courier f (\() 2087 4245 w 10 /Times-Italic f (expression\255list) 2207 4245 w 6 /Times-Italic f (opt) 2790 4275 w 10 /Courier f (\)) 2892 4245 w 10 /Times-Italic f (primary) 1740 4355 w 10 /Courier f ([) 2087 4355 w 10 /Times-Italic f (expression) 2172 4355 w 10 /Courier f (]) 2624 4355 w 10 /Times-Italic f (lvalue) 1740 4465 w 10 /Courier f (.) 2009 4465 w 10 /Times-Italic f (identifier) 2129 4465 w (primary) 1740 4575 w 10 /LucidaSansUnicode20 f (\024) 2087 4575 w 10 /Courier f (>) 2187 4575 w 10 /Times-Italic f (identifier) 2307 4575 w (lvalue:) 1380 4762 w (identifier) 1740 4872 w (primary) 1740 4982 w 10 /Courier f ([) 2087 4982 w 10 /Times-Italic f (expression) 2207 4982 w 10 /Courier f (]) 2659 4982 w 10 /Times-Italic f (lvalue) 1740 5092 w 10 /Courier f (.) 2009 5092 w 10 /Times-Italic f (identifier) 2129 5092 w (primary) 1740 5202 w 10 /LucidaSansUnicode20 f (\024) 2087 5202 w 10 /Courier f (>) 2187 5202 w 10 /Times-Italic f (identifier) 2272 5202 w 10 /Times-Roman f (*) 1740 5334 w 10 /Times-Italic f (expression) 1840 5312 w 10 /Courier f (\() 1740 5422 w 10 /Times-Italic f (lvalue) 1920 5422 w 10 /Courier f (\)) 2214 5422 w 10 /Times-Roman f (The primary\255expression operators) 1020 5609 w 10 /Courier f (\() 1380 5796 w (\)) 1456 5796 w ([) 1636 5796 w (]) 1712 5796 w (.) 1892 5796 w 10 /LucidaSansUnicode20 f (\024) 2072 5796 w 10 /Courier f (>) 2172 5796 w 10 /Times-Roman f (have highest priority and group left\255to\255right.) 1020 5961 w (The unary operators) 2840 5961 w 10 /Courier f (&) 1500 6148 w 10 /S f (-) 1680 6148 w 10 /Courier f (!) 1855 6148 w 14 /Courier f (~) 2035 6203 w 10 /Times-Roman f (++) 2239 6148 w 10 /S f (--) 2401 6148 w 10 /Courier f (sizeof) 2561 6148 w 10 /Times-Roman f (have) 1020 6313 w (priority) 1241 6313 w (below) 1574 6313 w (the) 1851 6313 w (primary) 2007 6313 w (operators) 2357 6313 w (but) 2762 6313 w (higher) 2924 6313 w (than) 3213 6313 w (any) 3419 6313 w (binary) 3597 6313 w (operator,) 3886 6313 w (and) 4277 6313 w (group) 4455 6313 w (right\255to\255left.) 4722 6313 w (Bi\255) 5272 6313 w (nary operators and the conditional operator all group left\255to\255right, and have priority decreasing as indicated:) 1020 6423 w 10 /Times-Italic f (binop:) 1380 6610 w 10 /Courier f 10 /Times-Roman f (*) 1740 6742 w 10 /Courier f (/) 2030 6720 w (%) 2330 6720 w (+) 1740 6830 w 10 /S f (-) 2040 6830 w 10 /Courier f (>>) 1740 6940 w (<<) 2100 6940 w (<) 1740 7050 w (>) 2040 7050 w (<=) 2340 7050 w (>=) 2700 7050 w (==) 1740 7160 w (!=) 2100 7160 w (&) 1740 7270 w cleartomark showpage saveobj restore %%EndPage: 26 26 %%Page: 27 27 /saveobj save def mark 27 pagesetup 10 /Courier f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 27) 4341 580 w 10 /Courier f (^) 1740 978 w 10 /S f (|) 1740 1088 w 10 /Courier f (&&) 1740 1198 w 10 /S f (||) 1740 1308 w 10 /Courier f (?) 1740 1418 w (:) 1920 1418 w 10 /Times-Roman f (Assignment operators all have the same priority, and all group right\255to\255left.) 1020 1572 w 10 /Times-Italic f (asgnop:) 1380 1759 w 10 /Courier f (=) 1740 1869 w (=+) 1920 1869 w (=) 2160 1869 w 10 /S f (-) 2220 1869 w 10 /Courier f (=) 2395 1869 w 10 /Times-Roman f (*) 2455 1891 w 10 /Courier f (=/) 2625 1869 w (=%) 2865 1869 w (=>>) 3105 1869 w (=<<) 3405 1869 w (=&) 3705 1869 w (=^) 3945 1869 w (=) 4185 1869 w 10 /S f (|) 4245 1869 w 10 /Times-Roman f (The comma operator has the lowest priority, and groups left\255to\255right.) 1020 2023 w (2.) 1020 2210 w (Declarations.) 1145 2210 w 10 /Times-Italic f (declaration:) 1380 2397 w (decl\255specifiers declarator\255list) 1740 2507 w 6 /Times-Italic f (opt) 2925 2537 w 10 /Courier f (;) 3052 2507 w 10 /Times-Italic f (decl\255specifiers:) 1380 2694 w (type\255specifier) 1740 2804 w (sc\255specifier) 1740 2914 w (type\255specifier sc\255specifier) 1740 3024 w (sc\255specifier type\255specifier) 1740 3134 w (sc\255specifier:) 1380 3321 w 10 /Courier f (auto) 1740 3431 w (static) 1740 3541 w (extern) 1740 3651 w (register) 1740 3761 w 10 /Times-Italic f (type\255specifier:) 1380 3948 w 10 /Courier f (int) 1740 4058 w (char) 1740 4168 w (float) 1740 4278 w (double) 1740 4388 w (struct {) 1740 4498 w 10 /Times-Italic f (type\255decl\255list }) 2280 4498 w 10 /Courier f (struct) 1740 4608 w 10 /Times-Italic f (identifier { type\255decl\255list }) 2160 4608 w 10 /Courier f (struct) 1740 4718 w 10 /Times-Italic f (identifier) 2160 4718 w (declarator\255list:) 1380 4905 w (declarator) 1740 5015 w (declarator) 1740 5125 w 10 /Courier f (,) 2187 5125 w 10 /Times-Italic f (declarator\255list) 2272 5125 w (declarator:) 1380 5312 w (identifier) 1740 5422 w 10 /Times-Roman f (*) 1740 5554 w 10 /Times-Italic f (declarator) 1815 5532 w (declarator) 1740 5642 w 10 /Courier f (\( \)) 2187 5642 w 10 /Times-Italic f (declarator) 1740 5752 w 10 /Courier f ([) 2187 5752 w 10 /Times-Italic f (constant\255expression) 2272 5752 w 6 /Times-Italic f (opt) 3071 5782 w 10 /Courier f (]) 3173 5752 w 10 /Times-Italic f 10 /Courier f (\() 1740 5862 w 10 /Times-Italic f (declarator) 1860 5862 w 10 /Courier f (\)) 2307 5862 w 10 /Times-Italic f (type\255decl\255list:) 1380 6049 w (type\255declaration) 1740 6159 w (type\255declaration type\255decl\255list) 1740 6269 w (type\255declaration:) 1380 6456 w (type\255specifier declarator\255list) 1740 6566 w 10 /Courier f (;) 2936 6566 w 10 /Times-Roman f (3. Statements.) 1020 6841 w 10 /Times-Italic f (statement:) 1380 7028 w (expression) 1740 7138 w 10 /Courier f (;) 2192 7138 w 10 /Times-Italic f ({ statement\255list }) 1740 7248 w cleartomark showpage saveobj restore %%EndPage: 27 27 %%Page: 28 28 /saveobj save def mark 28 pagesetup 10 /Times-Italic f (\255) 0 110 w (C Reference Manual \255 28) 720 580 w 10 /Courier f (if \() 1740 978 w 10 /Times-Italic f (expression) 2040 978 w 10 /Courier f (\)) 2492 978 w 10 /Times-Italic f (statement) 2612 978 w 10 /Courier f (if \() 1740 1088 w 10 /Times-Italic f (expression) 2065 1088 w 10 /Courier f (\)) 2517 1088 w 10 /Times-Italic f (statement) 2637 1088 w 10 /Courier f (else) 3045 1088 w 10 /Times-Italic f (statement) 3345 1088 w 10 /Courier f (while \() 1740 1198 w 10 /Times-Italic f (expression) 2220 1198 w 10 /Courier f (\)) 2672 1198 w 10 /Times-Italic f (statement) 2792 1198 w 10 /Courier f (for \() 1740 1308 w 10 /Times-Italic f (expression) 2100 1308 w 6 /Times-Italic f (opt) 2527 1338 w 10 /Courier f (;) 2629 1308 w 10 /Times-Italic f (expression) 2749 1308 w 6 /Times-Italic f (opt) 3176 1338 w 10 /Courier f (;) 3278 1308 w 10 /Times-Italic f (expression) 3398 1308 w 6 /Times-Italic f (opt) 3825 1338 w 10 /Courier f (\) statement) 3927 1308 w 10 /Times-Italic f 10 /Courier f (switch \() 1740 1418 w 10 /Times-Italic f (expression) 2280 1418 w 10 /Courier f (\)) 2732 1418 w 10 /Times-Italic f (statement) 2852 1418 w 10 /Courier f (case) 1740 1528 w 10 /Times-Italic f (constant\255expression) 2040 1528 w 10 /Courier f (:) 2864 1528 w 10 /Times-Italic f (statement) 2949 1528 w 10 /Courier f (default :) 1740 1638 w 10 /Times-Italic f (statement) 2340 1638 w 10 /Courier f (break ;) 1740 1748 w 10 /Times-Italic f 10 /Courier f (continue ;) 1740 1858 w (return ;) 1740 1968 w (return \() 1740 2078 w 10 /Times-Italic f (expression) 2280 2078 w 10 /Courier f (\) ;) 2732 2078 w (goto) 1740 2188 w 10 /Times-Italic f (expression) 2040 2188 w 10 /Courier f (;) 2492 2188 w 10 /Times-Italic f (identifier) 1740 2298 w 10 /Courier f (:) 2132 2298 w 10 /Times-Italic f (statement) 2252 2298 w 10 /Courier f (;) 1740 2408 w 10 /Times-Italic f (statement\255list:) 1380 2595 w (statement) 1740 2705 w (statement statement\255list) 1740 2815 w 10 /Times-Roman f (4.) 1020 3090 w (External definitions.) 1145 3090 w 10 /Times-Italic f (program:) 1380 3277 w (external\255definition) 1740 3387 w (external\255definition program) 1740 3497 w (external\255definition:) 1380 3684 w (function\255definition) 1740 3794 w (data\255definition) 1740 3904 w (function\255definition:) 1380 4091 w (type\255specifier) 1740 4201 w 6 /Times-Italic f (opt) 2283 4231 w 10 /Times-Italic f (function\255declarator function\255body) 2385 4201 w (function\255declarator:) 1380 4388 w (declarator) 1740 4498 w 10 /Courier f (\() 2187 4498 w 10 /Times-Italic f (parameter\255list) 2332 4498 w 6 /Times-Italic f (opt) 2904 4528 w 10 /Courier f (\)) 3006 4498 w 10 /Times-Italic f (parameter\255list:) 1380 4685 w (identifier) 1740 4795 w (identifier) 1740 4905 w 10 /Courier f (,) 2132 4905 w 10 /Times-Italic f (parameter\255list) 2217 4905 w (function\255body:) 1380 5092 w (type\255decl\255list function\255statement) 1740 5202 w (function\255statement:) 1380 5389 w ({ declaration\255list) 1740 5499 w 6 /Times-Italic f (opt) 2422 5529 w 10 /Times-Italic f (statement\255list }) 2524 5499 w (data\255definition:) 1380 5686 w 10 /Courier f (extern) 1740 5796 w 6 /Times-Italic f (opt) 2100 5826 w 10 /Times-Italic f (type\255specifier) 2202 5796 w 6 /Times-Italic f (opt) 2745 5826 w 10 /Times-Italic f (init\255declarator\255list) 2847 5796 w 6 /Times-Italic f (opt) 3592 5826 w 10 /Courier f (;) 3694 5796 w 10 /Times-Italic f (init\255declarator\255list:) 1380 5983 w (init\255declarator) 1740 6093 w (init\255declarator) 1740 6203 w 10 /Courier f (,) 2354 6203 w 10 /Times-Italic f (init\255declarator\255list) 2439 6203 w (init\255declarator:) 1380 6390 w (declarator initializer) 1740 6500 w 6 /Times-Italic f (opt) 2577 6530 w 10 /Times-Italic f (initializer:) 1380 6687 w (constant) 1740 6797 w ({ constant\255expression\255list }) 1740 6907 w cleartomark showpage saveobj restore %%EndPage: 28 28 %%Page: 29 29 /saveobj save def mark 29 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 29) 4341 580 w (constant\255expression\255list:) 1380 978 w (constant\255expression) 1740 1088 w (constant\255expression) 1740 1198 w 10 /Courier f (,) 2564 1198 w 10 /Times-Italic f (constant\255expression\255list) 2649 1198 w (constant\255expression:) 1380 1385 w (expression) 1740 1495 w 10 /Times-Roman f (5.) 1020 1649 w (Preprocessor) 1145 1649 w 10 /Times-Italic f 10 /Courier f (# define) 1380 1836 w 10 /Times-Italic f (identifier token\255string) 1920 1836 w 10 /Courier f (# include ") 1380 2023 w 10 /Times-Italic f (filename) 2040 2023 w 10 /Courier f (") 2400 2023 w cleartomark showpage saveobj restore %%EndPage: 29 29 %%Page: 30 30 /saveobj save def mark 30 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 30) 720 580 w 10 /Times-Roman f (APPENDIX 2) 2775 1088 w (Implementation Peculiarities) 2484 1198 w (This) 720 1528 w (Appendix) 926 1528 w (briefly) 1348 1528 w (summarizes) 1642 1528 w (the) 2147 1528 w (differences) 2297 1528 w (between) 2767 1528 w (the) 3127 1528 w (implementations) 3277 1528 w (of) 3973 1528 w (C) 4085 1528 w (on) 4181 1528 w (the) 4310 1528 w 8 /Times-Roman f (PDP) 4461 1528 w 10 /Times-Roman f (\25511) 4609 1528 w (under) 4771 1528 w 8 /Times-Roman f (UNIX) 5027 1528 w 10 /Times-Roman f (and) 5256 1528 w (on) 720 1638 w (the) 849 1638 w 8 /Times-Roman f (HIS) 995 1638 w 10 /Times-Roman f (6070) 1153 1638 w (under) 1382 1638 w 8 /Times-Roman f (GCOS) 1638 1638 w 10 /Times-Roman f (;) 1853 1638 w (it) 1910 1638 w (includes) 1995 1638 w (some) 2357 1638 w (known) 2597 1638 w (bugs) 2898 1638 w (in) 3116 1638 w (each) 3223 1638 w (implementation.) 3434 1638 w (Each) 4140 1638 w (entry) 4367 1638 w (is) 4600 1638 w (keyed) 4695 1638 w (by) 4961 1638 w (an) 5089 1638 w (indi\255) 5211 1638 w (cator as follows:) 720 1748 w (h) 1008 1968 w (hard to fix) 1296 1968 w (g) 1008 2078 w 8 /Times-Roman f (GCOS) 1296 2078 w 10 /Times-Roman f (version should probably be changed) 1536 2078 w (u) 1008 2188 w 8 /Times-Roman f (UNIX) 1296 2188 w 10 /Times-Roman f (version should probably be changed) 1521 2188 w (d) 1008 2298 w (Inherent difference likely to remain) 1296 2298 w (This list was prepared by M. E. Lesk, S. C. Johnson, E. N. Pinson, and the author.) 720 2518 w 10 /Times-Italic f (A. Bugs or differences from C language specifications) 720 2848 w 10 /Times-Roman f (hg) 720 3068 w (A.1\)) 1008 3068 w 8 /Times-Roman f (GCOS) 1584 3068 w 10 /Times-Roman f (does not do type conversions in ``?:''.) 1824 3068 w (hg) 720 3178 w (A.2\)) 1008 3178 w 8 /Times-Roman f (GCOS) 1584 3178 w 10 /Times-Roman f (has) 1826 3178 w (a) 1986 3178 w (bug) 2057 3178 w (in) 2234 3178 w 10 /Courier f (int) 2339 3178 w 10 /Times-Roman f (and) 2546 3178 w 10 /Courier f (real) 2717 3178 w 10 /Times-Roman f (comparisons;) 2984 3178 w (the) 3544 3178 w (numbers) 3693 3178 w (are) 4064 3178 w (compared) 4212 3178 w (by) 4632 3178 w (subtraction,) 4759 3178 w (and) 5256 3178 w (the difference must not overflow.) 1584 3288 w (g) 720 3398 w (A.3\)) 1008 3398 w (When) 1584 3398 w 10 /Times-Italic f (x) 1847 3398 w 10 /Times-Roman f (is a) 1916 3398 w 10 /Courier f (float) 2077 3398 w 10 /Times-Roman f (, the construction ``test ? ) 2377 3398 w 10 /S f (-) 3392 3398 w 10 /Times-Roman f (x : x'' is illegal on) 3447 3398 w 8 /Times-Roman f (GCOS) 4208 3398 w 10 /Times-Roman f (.) 4423 3398 w (hg) 720 3508 w (A.4\)) 1008 3508 w (``p1) 1584 3508 w 10 /S f (-) 1750 3508 w 10 /Times-Roman f (>p2 =+ 2'' causes a compiler error, where p1 and p2 are pointers.) 1805 3508 w (u) 720 3618 w (A.5\)) 1008 3618 w (On) 1584 3618 w 8 /Times-Roman f (UNIX) 1732 3618 w 10 /Times-Roman f (,) 1932 3618 w (the) 1983 3618 w (expression) 2131 3618 w (in) 2584 3618 w (a) 2688 3618 w 10 /Courier f (return) 2758 3618 w 10 /Times-Roman f (statement) 3144 3618 w (is) 3553 3618 w 10 /Times-Italic f (not) 3646 3618 w 10 /Times-Roman f (converted) 3800 3618 w (to) 4220 3618 w (the) 4325 3618 w (type) 4474 3618 w (of) 4673 3618 w (the) 4783 3618 w (function,) 4932 3618 w (as) 5317 3618 w (promised.) 1584 3728 w (hug) 720 3838 w (A.6\)) 1008 3838 w 10 /Courier f (entry) 1584 3838 w 10 /Times-Roman f (statement is not implemented at all.) 1909 3838 w 10 /Times-Italic f (B. Implementation differences) 720 4058 w 10 /Times-Roman f (d) 720 4278 w (B.1\) Sizes of character constants differ;) 1008 4278 w 8 /Times-Roman f (UNIX) 2988 4278 w 10 /Times-Roman f (: 2,) 3188 4278 w 8 /Times-Roman f (GCOS) 3341 4278 w 10 /Times-Roman f (: 4.) 3556 4278 w (d) 720 4388 w (B.2\) Table sizes in compilers differ.) 1008 4388 w (d) 720 4498 w (B.3\) ) 1008 4498 w 10 /Courier f (char) 1584 4498 w 10 /Times-Roman f (s and) 1824 4498 w 10 /Courier f (int) 2057 4498 w 10 /Times-Roman f (s have different sizes;) 2237 4498 w 10 /Courier f (char) 3165 4498 w 10 /Times-Roman f (s) 3405 4498 w (are) 3470 4498 w (8) 3617 4498 w (bits) 3693 4498 w (on) 3864 4498 w 8 /Times-Roman f (UNIX) 3990 4498 w 10 /Times-Roman f (,) 4190 4498 w (9) 4241 4498 w (on) 4317 4498 w 8 /Times-Roman f (GCOS) 4443 4498 w 10 /Times-Roman f (;) 4658 4498 w (words) 4712 4498 w (are) 4982 4498 w (16) 5129 4498 w (bits) 5255 4498 w (on) 1584 4608 w 8 /Times-Roman f (UNIX) 1715 4608 w 10 /Times-Roman f (and) 1946 4608 w (36) 2121 4608 w (on) 2252 4608 w 8 /Times-Roman f (GCOS) 2383 4608 w 10 /Times-Roman f (.) 2598 4608 w (There) 2679 4608 w (are) 2942 4608 w (corresponding) 3094 4608 w (differences) 3696 4608 w (in) 4169 4608 w (representations) 4278 4608 w (of) 4913 4608 w 10 /Courier f (float) 5061 4608 w 10 /Times-Roman f (s) 5361 4608 w (and) 1584 4718 w 10 /Courier f (double) 1753 4718 w 10 /Times-Roman f (s.) 2113 4718 w (d) 720 4828 w (B.4\) Character arrays stored left to right in a word in) 1008 4828 w 8 /Times-Roman f (GCOS) 3513 4828 w 10 /Times-Roman f (, right to left in) 3728 4828 w 8 /Times-Roman f (UNIX) 4356 4828 w 10 /Times-Roman f (.) 4556 4828 w (g) 720 4938 w (B.5\) Passing of floats and doubles differs;) 1008 4938 w 8 /Times-Roman f (UNIX) 3083 4938 w 10 /Times-Roman f (passes on stack,) 3308 4938 w 8 /Times-Roman f (GCOS) 3968 4938 w 10 /Times-Roman f (passes) 4209 4938 w (pointer) 4490 4938 w (\(hidden) 4799 4938 w (to) 5130 4938 w (nor\255) 5234 4938 w (mal user\).) 1584 5048 w (g) 720 5158 w (B.6\) Structures and strings are aligned on a word boundary in) 1008 5158 w 8 /Times-Roman f (UNIX) 3869 5158 w 10 /Times-Roman f (, not aligned in) 4069 5158 w 8 /Times-Roman f (GCOS) 4694 5158 w 10 /Times-Roman f (.) 4909 5158 w (g) 720 5268 w (B.7\) ) 1008 5268 w 8 /Times-Roman f (GCOS) 1584 5268 w 10 /Times-Roman f (preprocessor supports #rename, #escape;) 1824 5268 w 8 /Times-Roman f (UNIX) 3478 5268 w 10 /Times-Roman f (has only #define, #include.) 3703 5268 w (u) 720 5378 w (B.8\) Preprocessor is not invoked on) 1008 5378 w 8 /Times-Roman f (UNIX) 2841 5378 w 10 /Times-Roman f (unless first character of file is ``#''.) 3066 5378 w (u) 720 5488 w (B.9\) The) 1008 5488 w (external) 1771 5488 w (definition) 2124 5488 w (``static) 2545 5488 w (int) 2854 5488 w (.) 2992 5488 w (.) 3033 5488 w (.'') 3074 5488 w (is) 3222 5488 w (legal) 3321 5488 w (on) 3547 5488 w 8 /Times-Roman f (GCOS) 3680 5488 w 10 /Times-Roman f (,) 3895 5488 w (but) 3953 5488 w (gets) 4114 5488 w (a) 4308 5488 w (diagnostic) 4385 5488 w (on) 4829 5488 w 8 /Times-Roman f (UNIX) 4962 5488 w 10 /Times-Roman f (.) 5162 5488 w (\(On) 5245 5488 w 8 /Times-Roman f (GCOS) 1584 5598 w 10 /Times-Roman f (it) 1829 5598 w (means) 1915 5598 w (an) 2200 5598 w (identifier) 2324 5598 w (global) 2720 5598 w (to) 3000 5598 w (the) 3108 5598 w (routines) 3260 5598 w (in) 3612 5598 w (the) 3720 5598 w (file) 3872 5598 w (but) 4035 5598 w (invisible) 4193 5598 w (to) 4568 5598 w (routines) 4676 5598 w (compiled) 5028 5598 w (separately.\)) 1584 5708 w (g) 720 5818 w (B.10\) A compound statement on) 1008 5818 w 8 /Times-Roman f (GCOS) 2661 5818 w 10 /Times-Roman f (must contain one ``;'' but on) 2901 5818 w 8 /Times-Roman f (UNIX) 4072 5818 w 10 /Times-Roman f (may be empty.) 4297 5818 w (g) 720 5928 w (B.11\) On) 1008 5928 w 8 /Times-Roman f (GCOS) 1735 5928 w 10 /Times-Roman f (case) 1979 5928 w (distinctions) 2179 5928 w (in) 2671 5928 w (identifiers) 2779 5928 w (and) 3214 5928 w (keywords) 3388 5928 w (are) 3806 5928 w (ignored;) 3957 5928 w (on) 4320 5928 w 8 /Times-Roman f (UNIX) 4450 5928 w 10 /Times-Roman f (case) 4680 5928 w (is) 4881 5928 w (significant) 4978 5928 w (everywhere, with keywords in lower case.) 1584 6038 w 10 /Times-Italic f (C. Syntax Differences) 720 6258 w 10 /Times-Roman f (g) 720 6478 w (C.1\) ) 1008 6478 w 8 /Times-Roman f (UNIX) 1584 6478 w 10 /Times-Roman f (allows) 1814 6478 w (broader) 2106 6478 w (classes) 2441 6478 w (of) 2749 6478 w (initialization;) 2863 6478 w (on) 3428 6478 w 8 /Times-Roman f (GCOS) 3559 6478 w 10 /Times-Roman f (an) 3805 6478 w (initializer) 3930 6478 w (must) 4344 6478 w (be) 4570 6478 w (a) 4695 6478 w (constant,) 4770 6478 w (name,) 5159 6478 w (or) 1584 6588 w (string.) 1695 6588 w (Similarly,) 2001 6588 w 8 /Times-Roman f (GCOS) 2422 6588 w 10 /Times-Roman f (is) 2665 6588 w (much) 2760 6588 w (stickier) 3010 6588 w (about) 3332 6588 w (wanting) 3581 6588 w (braces) 3930 6588 w (around) 4211 6588 w (initializers) 4515 6588 w (and) 4964 6588 w (in) 5135 6588 w (par\255) 5240 6588 w (ticular they must be present for array initialization.) 1584 6698 w (g) 720 6808 w (C.2\) ``int extern'' illegal on) 1008 6808 w 8 /Times-Roman f (GCOS) 2521 6808 w 10 /Times-Roman f (; must have ``extern int'' \(storage class before type\).) 2736 6808 w (g) 720 6918 w (C.3\) Externals on) 1008 6918 w 8 /Times-Roman f (GCOS) 2111 6918 w 10 /Times-Roman f (must have a type \(not defaulted to) 2351 6918 w 10 /Courier f (int) 3735 6918 w 10 /Times-Roman f (\).) 3915 6918 w (u) 720 7028 w (C.4\) ) 1008 7028 w 8 /Times-Roman f (GCOS) 1584 7028 w 10 /Times-Roman f (allows initialization of internal) 1824 7028 w 10 /Courier f (static) 3079 7028 w 10 /Times-Roman f (\(same syntax as for external definitions\).) 3464 7028 w (g) 720 7138 w (C.5\) integer) 1008 7138 w 10 /S f (-) 1861 7138 w 10 /Times-Roman f (>... is not allowed on) 1916 7138 w 8 /Times-Roman f (GCOS) 2783 7138 w 10 /Times-Roman f (.) 2998 7138 w (g) 720 7248 w (C.6\) Some operators on pointers are illegal on) 1008 7248 w 8 /Times-Roman f (GCOS) 3251 7248 w 10 /Times-Roman f (\(<, >\).) 3491 7248 w cleartomark showpage saveobj restore %%EndPage: 30 30 %%Page: 31 31 /saveobj save def mark 31 pagesetup 10 /Times-Roman f (\255) 0 110 w 10 /Times-Italic f (C Reference Manual \255 31) 4341 580 w 10 /Times-Roman f (g) 720 978 w (C.7\) ) 1008 978 w 10 /Courier f (register) 1584 978 w 10 /Times-Roman f (storage class means something on) 2089 978 w 8 /Times-Roman f (UNIX) 3468 978 w 10 /Times-Roman f (, but is not accepted on) 3668 978 w 8 /Times-Roman f (GCOS) 4614 978 w 10 /Times-Roman f (.) 4829 978 w (g) 720 1088 w (C.8\) Scope holes: ``int x; f) 1008 1088 w (\() 2466 1088 w (\)) 2531 1088 w ({int x;}'' is illegal on) 2580 1088 w 8 /Times-Roman f (UNIX) 3463 1088 w 10 /Times-Roman f (but defines two variables on) 3688 1088 w 8 /Times-Roman f (GCOS) 4839 1088 w 10 /Times-Roman f (.) 5054 1088 w (g) 720 1198 w (C.9\) When) 1008 1198 w (function) 1853 1198 w (names) 2217 1198 w (are) 2504 1198 w (used) 2657 1198 w (as) 2872 1198 w (arguments) 2987 1198 w (on) 3435 1198 w 8 /Times-Roman f (UNIX) 3567 1198 w 10 /Times-Roman f (,) 3767 1198 w (either) 3824 1198 w (``fname'') 4083 1198 w (or) 4496 1198 w (``&fname'') 4611 1198 w (may) 5102 1198 w (be) 5306 1198 w (used) 1584 1308 w (to) 1798 1308 w (get) 1907 1308 w (a) 2060 1308 w (pointer) 2135 1308 w (to) 2449 1308 w (the) 2558 1308 w (function;) 2711 1308 w (on) 3102 1308 w 8 /Times-Roman f (GCOS) 3232 1308 w 10 /Times-Roman f (``&fname'') 3477 1308 w (generates) 3966 1308 w (a) 4372 1308 w (doubly\255indirect) 4446 1308 w (pointer.) 5092 1308 w (\(Note that both are wrong since the ``&'' is supposed to be supplied for free.\)) 1584 1418 w 10 /Times-Italic f (D. Operating System Dependencies) 720 1638 w 10 /Times-Roman f (d) 720 1858 w (D.1\)) 1008 1858 w 8 /Times-Roman f (GCOS) 1584 1858 w 10 /Times-Roman f (allocates) 1831 1858 w (external) 2212 1858 w (scalars) 2565 1858 w (by) 2868 1858 w (SYMREF;) 3000 1858 w 8 /Times-Roman f (UNIX) 3457 1858 w 10 /Times-Roman f (allocates) 3690 1858 w (external) 4072 1858 w (scalars) 4426 1858 w (as) 4730 1858 w (labelled) 4846 1858 w (com\255) 5195 1858 w (mon;) 1584 1968 w (as) 1823 1968 w (a) 1939 1968 w (result) 2016 1968 w (there) 2271 1968 w (may) 2503 1968 w (be) 2708 1968 w (many) 2835 1968 w (uninitialized) 3090 1968 w (external) 3623 1968 w (definitions) 3977 1968 w (of) 4438 1968 w (the) 4554 1968 w (same) 4709 1968 w (variable) 4947 1968 w (on) 5300 1968 w 8 /Times-Roman f (UNIX) 1584 2078 w 10 /Times-Roman f (but only one on) 1809 2078 w 8 /Times-Roman f (GCOS) 2459 2078 w 10 /Times-Roman f (.) 2674 2078 w (d) 720 2188 w (D.2\)) 1008 2188 w (External) 1584 2188 w (names) 1960 2188 w (differ) 2253 2188 w (in) 2512 2188 w (allowable) 2628 2188 w (length) 3054 2188 w (and) 3342 2188 w (character) 3524 2188 w (set;) 3927 2188 w (on) 4105 2188 w 8 /Times-Roman f (UNIX) 4244 2188 w 10 /Times-Roman f (,) 4444 2188 w (7) 4508 2188 w (characters) 4597 2188 w (and) 5039 2188 w (both) 5222 2188 w (cases; on) 1584 2298 w 8 /Times-Roman f (GCOS) 1972 2298 w 10 /Times-Roman f (6 characters and only one case.) 2212 2298 w 10 /Times-Italic f (E. Semantic Differences) 720 2518 w 10 /Times-Roman f (hg) 720 2738 w (E.1\)) 1008 2738 w (``int i, *p; p=i; i=p;'' does nothing on) 1584 2738 w 8 /Times-Roman f (UNIX) 3116 2738 w 10 /Times-Roman f (, does something on) 3316 2738 w 8 /Times-Roman f (GCOS) 4141 2738 w 10 /Times-Roman f (\(destroys right half of i\) .) 4381 2738 w (d) 720 2848 w (E.2\)) 1008 2848 w (``>>'' means arithmetic shift on) 1584 2848 w 8 /Times-Roman f (UNIX) 2891 2848 w 10 /Times-Roman f (, logical on) 3091 2848 w 8 /Times-Roman f (GCOS) 3563 2848 w 10 /Times-Roman f (.) 3778 2848 w (d) 720 2958 w (E.3\)) 1008 2958 w (When a) 1584 2958 w 10 /Courier f (char) 1916 2958 w 10 /Times-Roman f (is converted to integer,) 2181 2958 w (the) 3122 2958 w (result) 3270 2958 w (is) 3518 2958 w (always) 3611 2958 w (positive) 3914 2958 w (on) 4257 2958 w 8 /Times-Roman f (GCOS) 4383 2958 w 10 /Times-Roman f (but) 4624 2958 w (can) 4778 2958 w (be) 4942 2958 w (negative) 5062 2958 w (on) 1584 3068 w 8 /Times-Roman f (UNIX) 1709 3068 w 10 /Times-Roman f (.) 1909 3068 w (d) 720 3178 w (E.4\)) 1008 3178 w (Arguments of subroutines are evaluated left\255to\255right on) 1584 3178 w 8 /Times-Roman f (GCOS) 3816 3178 w 10 /Times-Roman f (, right\255to\255left on) 4031 3178 w 8 /Times-Roman f (UNIX) 4697 3178 w 10 /Times-Roman f (.) 4897 3178 w cleartomark showpage saveobj restore %%EndPage: 31 31 %%Trailer done %%DocumentFonts: Times-Roman LucidaSansUnicode20 Times-Italic Courier S1 S %%Pages: 31