In article <48***********************@reader2.news.tin.it>
nembo kid <us**@localhost.comwrote:
[given]
>int a[100][100];
Why the first address of this array is only:
&(mat[0][0])
[vs mat, mat+0, or &mat[0]; but consider also &mat!]
See the diagram at <http://web.torek.net/torek/c/pa.html>: there
are multiple "first address"-es, differing in type, and hence in
the "size of the circles".
Here is the next point to ponder: Are they all "the same" address?
Maybe they are, maybe they are not. Is 3.14159265 the same number
as 3? How about 3.00000 vs 3? What happens if you printf() the
result of the following four comparisons?
(int)3.14159265 == 3
(double)3 == 3.14159265
(int)3.0 == 3
(double)3 == 3.0
Based on what you get if you do printf() those, is it perhaps the
case that 3.0 is "more equal to 3" than 3.14159265?
(We can only compare things for equality after we convert them to
some common type, and the conversion itself may -- or may not --
change "something important". When we convert a double to an int,
we chop off the fractional part. Is it important? Maybe, but
maybe not: it all depends on what we *meant* with the original
double.)
--
In-Real-Life: Chris Torek, Wind River Systems
Salt Lake City, UT, USA (40°39.22'N, 111°50.29'W) +1 801 277 2603
email: gmail (figure it out)
http://web.torek.net/torek/index.html