3

I've started learning C++, and I know a little bit of C. Something that always struck me as somewhat off was that the address-of operator is represented with the seemingly random ampersand (&) symbol instead of, say, the "at" symbol (@). Is there some kind of history behind this?

Nat H
  • 31
  • 2

1 Answers1

5

Because B did!

A user on software engineering.sx contacted Ken Thompson:

From: Ken Thompson

c copied from b so & and * are same there.
b got * from earlier languages - some assembly,
bcpl and i think pl/1.
i think that i used & because the name (ampersand)
sounds like "address." b was designed to be run with
a teletype model 33 teletype. (5 bit baud-o code)
so the use of symbols was restricted.

Ainsley H.
  • 17,823
  • 3
  • 43
  • 68