char **w = c->u.word;
printf ("%*s%s", indent, "", *w);
Run Code Online (Sandbox Code Playgroud)
好的,目前,作为字符串值*w保存"true".
我访问它没有问题.
indent是整数值,即2.
首先,我不明白printf函数在这种情况下是如何工作的.看起来它有四个参数.其次,我预计输出为"真实",但我什么也没得到.它为什么会这样?
星号(*)表示您可以定义可变字段宽度.所以
"%*s%s"
Run Code Online (Sandbox Code Playgroud)
表示您有一个具有可变字段宽度的字符串(字段的长度在字符串到达之前作为整数传递printf).接下来是一个字符串,它将打印出没有填充.
你的参数是:
indent, "", *w
Run Code Online (Sandbox Code Playgroud)
在格式中,indent对应于星号(*),""对应于s中%*s,并*w对应做%s.因此,这将打印一个零长度字符串,其字段宽度indent后跟*w指向的字符串.换句话说,您将始终在输出indent中的字符串前面获得空格*w.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |