古人有名有字,旧说上古婴儿出生三个月后由父亲命名。男子在二十岁行冠礼(成人礼)时取字,女子在十五岁行笄礼(许嫁)时取字。名和字往往有着意义上的关联。比如题主所举的杜甫,甫的本意就是古代在男子名字下加的美称,如《诗经﹒大雅﹒烝民》:“肃肃王命,仲山甫将之。”更多的例子则如:宰予,字字我;端木赐,字子贡。有的人名和字是同义词,比如屈平,字原(《尔雅﹒释地》:“广平曰原。”)有的人名和字则是反义词,比如曾点,字皙(《说文》:点,小黑也;皙,人色白也。)
有些时候名与字之间的关联并不只是近义反义那么简单。比如孔子,名丘,字仲尼。《史记﹒孔子世家》记载,孔子的父母“祷于尼丘”,遂生孔子,因此名丘,字仲尼。随着时间的流逝,一些字的意义发生了变迁,而许多故事也淹没在风尘,一些人的字与他们的名的关联,我们或许永远也不得而知了。
还有一种常见男子的字的构成,是常常在字的前面加“伯、仲、叔、季”表示排行,在字的后面加上“父”或者“甫”表示排行。这是周代贵族男子的做法,如此男子字的全称有三个字,如伯禽父,还有之前提过的仲山甫。也有只以排行为字的,如管夷吾,字仲;范雎,字叔。但少见。
上古时期,名和字连着说的时候,都是先称字,后称名。例如孔子的父亲叔梁(字)纥(名)。汉代以后,则先称名后称字。比如《游褒禅山记》最后记载同游者:“四人者:庐陵萧君圭(名)君玉(字),长乐王回深父,余弟安国平父、安上纯父。”
上古尊卑等级森严,尊对卑称命,卑自称也称名;对平辈或尊辈只能称字,甚至连字都不能称(对父母)。
古人的字是尊辈取得,但他们还有很多别号,别号就可以自己取了。如苏轼字子瞻,号东坡;陆游字务观,号放翁。后人更多称他们的号而非字。当然对人称字和称号都是表达了极大的尊敬。不过古人对一个人最尊敬的称呼是既不称字也不称号,如杜工部(官名),王临川(出生地),韩昌黎(郡望)等。