Allison wrote:
C was written for or about the PDP-11. Just about all the C addressing
modes and basic OPs are native for pdp11 addressing and many instructions.
While there seems to be a popularly-held association between C and the PDP-11,
I believe the suggestion of design influence is overstated.
The funky addressing operations (post/pre-inc/dec,indirection,etc.)
of C were present in the earlier B language, which ran on other machines
before the 11. Dennis Ritchie actually specifically addresses this in his
history of the C language:
http://cm.bell-labs.com/cm/cs/who/dmr/chist.html,
see the "More History" section).
A primary change from B to C was the addition of byte types and a further
abstraction of pointers to facilitate byte-addressed machines.
Porting the early unix to the 11 may have helped instigate this (see Ritchie's
History of C again), but byte-handling and addressing were nothing
unique to, or uniquely beneficial to, the 11. (If it hadn't been done for the 11
it would have been done for another port.)
While C and the PDP-11 were a nice fit, I'd suggest the correlation is more one of
common trends of the time influencing both, than (either) being written or designed
for the other.