Subject: Southwest Survey Winner (Gift-Card)

From: Southwest Coupons <[email-masked]>
Date: Tue, 22 Jul 2014 09:35:00 -0700

Congratulations Krb-wg-archive,

You've been selected to take part in this survey. 

Tell us what you think of SOUTHWEST_COM in this 30 seconds questionnaire, and to say "thank you", we'll offer you an exclusive reward worth over $50...

Redeem Voucher Here -> http://www.figurenom.com/redeem/voucher/gc.index

---------------------------------------------------------
Question 1 of 4: Where are you viewing SOUTHWEST from?

a) At Home (Click Here: http://www.figurenom.com/redeem/voucher/gc.index )

b) At Work 

c) Other 

View Next Question Here -> http://www.figurenom.com/redeem/voucher/gc.index

-
-
-
`
'
TO stop further reward notifications - write to  Updated Notifications Services
115 Hadley Way-Counce, TN 38326 or visit http://www.figurenom.com/35t/h6/23/derty66.meii
-
-
-
That's very creative but unfortunately that's not how compilers work. The compiler interprets a[1] as a series of tokens, not strings: *({integer location of}a {operator}+ {integer}1) is the same as *({integer}1 {operator}+ {integer location of}a) but is not the same as *({integer location of}a {operator}+The C language has chosen to implement array access purely as a syntactic sugar. That is why the compiler cannot check that the left part is a pointer. Then, it somehow happens that pointer arithmetic makes the resulting program valid even when it is not I disagree about it not being valid. Ritchie himself says that it is. It may be an unintended consequence but I believe it is still valid. An interesting compound variation on this is illustrated in Illogical array access, where you have char bar[]; int foo[]; and foo[i][bar] is used as an expression. why do you think 'the compiler cannot check that the left part is a pointer'? Yes, it can. It's true that a[b] = *(a + b) for any giv
 en a and b, but it was the language designers' free choice for + to be defined commutative for all types. Nothing could prevent them from forbidding i + p while allowing p + i.   Andrey Chernyakhovskiy Mar 14 at 19:46 
  	 	
@Andrey They could have forbidden i+p, but breaking commutativity hurts intuition. Forbidding i[p] would have made more sense, because brackets visually suggest accessing an array.  to me, it is commutativity in this case that hurts intuition. With pointers, the + operator means offset, not addition; its arguments are of different nature and therefore there is no symmetry in them. We cannot write i - p, can we?   One usually expects + to be commutative, so maybe the real problem is choosing to make pointer operations resemble arithmetic, instead of designing a separate offset operator.