课本练习7.6

课本练习7.6

教科书练习7.6如下:

' ' 产生什么标记\expandafter\string\csname a\string\   b\endcsname?( . 之前有三个空格b

这是我对这个问题的分析,我想知道它是否正确。

首先,a\string\   b生成一个标记列表:a(catcode 11),\(catcode 12),space(catcode 12) 和b(catcode 11)。

然后\csname\endcsname标记列表变成控制序列\a\ b

最后,\string将控制序列制作成字符标记列表:\(catcode 12),a(catcode 12),\(catcode 12),space(catcode 10),b(catcode 12)

答案1

答案就在书的后面

你的答案是正确的,但是中间阶段的分析是错误的,\string\造成了 catcode 12\和 catcode 10 之间的差距。

另外,您暗示的时间有点误导,\csname在内部之前首先扩展,但是当到达\string时,标记就会被收集起来并制成控制序列。\endcsame

相关内容