1

我必须用 C 编写一个简单的程序,该程序打印到标准输出三角形,给定数字 n 有两条相等的边。这意味着对于 n=3,输出将是:

X

xx

xxx

现在我应该做这个程序的两个版本: 1. 内存保守。2.时间保守。

现在我不完全确定,但我认为第一个版本一次只打印一个 x,第二个版本一次扩展一个 char 表,然后打印它。

但是打印一个 char* 是否比打印多个单个字符更快?

4

1 回答 1

4

您可能无法观察到,但在内存中构建整个字符串然后立即打印它在理论上肯定更快。原因是您将减少对 printf 函数的调用。每次调用函数时,都会在后台发生多种事情,例如将所有当前方法变量和当前位置推送到堆栈并在返回后将它们弹回。

但是,正如我提到的,您可能无法观察到较小输入的这种差异,因为每个操作所需的时间都很短,除非您使用 1960 年代的计算机。

于 2013-11-14T09:39:29.500 回答