我必须在C中编写一个简单的程序,打印到标准输出三角形,给定数字n有两个相等的边。意味着对于n = 3,输出将是:
X
XX
XXX
现在我应该做这个程序的两个版本: 1.记忆保守。 2.时间保守。
现在我不完全确定,但我认为第一个版本只能一次打印一个,第二个版本会一次扩展一个char表,然后打印出来。
但打印char *比打印多个单个字符更快?
答案 0 :(得分:4)
您可能无法观察到但是在内存中构建整个字符串然后立即打印它在理论上肯定更快。原因是你将减少对printf函数的调用。每次调用函数时,背景中都会发生多种事情,例如将所有当前方法变量和当前位置推送到堆栈并在返回后将其弹回。
然而,正如我所提到的,您可能无法观察到较小输入的这种差异,因为除非您使用20世纪60年代的计算机,否则每个操作所需的时间都很短。