0
A
回答
1
让我仔细研究该行:
for(char const * i = "*****";printf("%s\n",i + 4) < 6;i--);
的for
循环条件第一部分:char const * i = "*****";
只是一个指向5级星级人物。 i+1
会指向****
,i+2
会指向***
等等。
第二部分打印给定数量的星星:printf("%s\n",i + 4)
。通常在for
循环的这一部分中,我们使用类似i < n
的东西。在这里,而不是i
我们得到的结果printf
。
看一看man 3 printf
理解它:
返回值 在成功返回,这些函数返回打印的字符的数目(不包括用于结束输出为字符串的空字节)。
所以基本上我们的printf的i
串的更小的部分,直到printf的返回6
作为打印的字符数。
1
这是它打印: -
*
**
***
****
*****
要点要记住: -
printf
没有返回印刷for
循环字符的执行,直到条件计算为真- 我被初始化为常量字符串的最后一个开始,并且每次迭代向左移动1星
1
This might make it more clear:
char*i = "12345";
int charsPrinted = printf("%s\n", i + 4);
while (charsPrinted < 6)
{
i--;
charsPrinted = printf("%s\n", i + 4);
}
但它很可能会崩溃。要打破循环,charsPrinted必须达到6,这意味着i
不再指向字符串开始。这一点并不真正有效。它可能工作,但这取决于。如果没有崩溃,将会打印:
5
45
345
2345
12345
相关问题
- 1. 我需要一些此代码的一些解释
- 2. 了解一些Java代码 - 我需要一点解释
- 3. 解释的代码需要
- 4. 的C#代码好奇的一点 - 需要一些解释
- 5. 解释一些jQuery代码
- 6. 解释一些javascript代码
- 7. 需要关于此代码与多态性的解释
- 8. rails:需要对collection_select的一些解释
- 9. 需要解释我的界面代码
- 10. 需要对这些代码位的解释
- 11. NoobProgramer =“需要对此JQUERY平滑滚动代码进行解释”
- 12. rails belongs_to has_one。需要一些解释
- 13. 需要厄雷算法一些解释
- 14. 需要一些解释对财产
- 15. 需要解释一些Ruby语法
- 16. JavaScript语法需要一些解释
- 17. 需要解释什么代码
- 18. 需要帮助了解此代码
- 19. 解释此C#代码,请
- 20. 我需要一些关于此代码的帮助
- 21. 返回值((MethodInvoker)代表{/ * ... * /};我需要做一些解释
- 22. 请解释这些代码
- 23. 我需要一个先进的CSS代码的解释
- 24. 解释一些淘汰赛代码
- 25. 解释一些javascript/jQuery代码
- 26. 请解释一些javascricpt代码
- 27. 需要一些解释来了解scala中的地图功能
- 28. 请解释此Syncsort代码的作用?
- 29. Java代码的解释需要(递归迷宫解算器)
- 30. 需要解释关于一块D3.JS代码
不准备离开。该代码太糟糕了,无法进行检查。 – ThingyWotsit
Yo初始化一个指向明亮字符串的指针*****'然后你从后面打印字符串 i + 4是因为pinter大小是4位而不是1作为正则字符 –
@ScottHunter不,它声明它是指向const char的指针,指针不是常量 –