On Thu, 19 Jan 2006 08:06:50 +0100 in comp.lang.python, "Fredrik
Lundh" <[EMAIL PROTECTED]> wrote:

>Dave Hansen wrote:
>

[EMAIL PROTECTED] wrote]

>> >Fuzzyman wrote:
[...]
>> >> In this case :
>> >>
>> >> a = ['some string']
>> >> b = ['somestring']
>> >> a == b
>> >> False (probably)
>> >That depends, the C syntax is like this :
>> >
>> >char *a="hello";
>> >char *b="hello";
>> >
>> >assert(a==b);
>> >
>> >// true, the compiler knows the two hello are the same and assign the
>> >same address(sort of id() in python) to a and b
>>
>> No. The C standard says the compiler is _allowed_ to re-use character
>> literal constants, but is not _required_ to do so.
>
>I could have sworn that fuzzyman's example contained a literal string in
>an array, and an array comparision, so why are you talking about com-
>paring string literals ?   a compiler for which

I was responding to bonono's example, not fuzzyman's.  Perhaps a more
appropriate response would have been that his example (besides being
incorrect) didn't match the situation under consideration.

>
>    char* a[] = { "some string" };
>    char* b[] = { "some string" };
>
>    ...
>
>    if (a == b)
>        printf("True\n");
>
>prints True is definitely broken.

Definitely.  However,

   if (a[0] == b[0])
      puts("True");

May or may not print "True."  Either answer is allowed.  In C.

Regards,
                                        -=Dave

-- 
Change is inevitable, progress is not.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to