K&R App A, par. 8 & 8.2, on Declarat - (nf)
Keith Pilotti
pilotti at sdcsla.UUCP
Wed Aug 1 16:15:57 AEST 1984
In article <166 at tellab2.UUCP> thoth at tellab2.UUCP (Marcus Hall) writes:
>>int a = 2;
>>main() {
>> a = 1;
>>
>> x();
>>}
>>x() {
>> printf("%d\n", a);
>>}
>>
>>will print "2" if "a = 1" is a declaration,
>>"1" if it is an assignment (current, expected, behavior).
>
>No, the reference to 'a' in x() is to the global 'a'. The 'a' that is inside
> main() can only be referenced inside main or by passing the address to another
> function.
>
>marcus
>..!ihnp4!tellab1!tellab2!thoth
There IS NO 'a' inside main(), that is the point of the original article.
The 'a = 1' is an assignment to the GLOBAL 'a', and the program prints '1'.
(Tested on C compilers on both VAX (4.2BSD) and Sun Workstation (1.1))
___________________________________________________________
KEITH F PILOTTI -- UC SanDiego Cognitive Science Laboratory
...{philabs,ucbvax}!sdcsvax!sdcsla!pilotti (UUCP)
pilotti at NPRDC (ARPA)
More information about the Comp.lang.c
mailing list