- 论坛徽章:
- 0
|
原帖由 converse 于 2008-1-10 11:35 发表 ![]()
我一般尽量避免编写这种频繁分配变量空间的代码,比如说
一个循环中
for()
{
data t = XXX;
}
我写为:
data t;
for()
{
t = XXX;
}
原帖由 pzz68 于 2008-1-10 22:11 发表 ![]()
写在循环内并不是每次循环都重新分配数据空间的. 两个情况对变量 t 分配次数是一样的, 都是一次.
原帖由 zszyj 于 2008-1-11 11:13 发表 ![]()
不是一样的,放在循环体内,每循环一次就会分配和释放一次. 写个class在看看在析构方法中打印提示信息,测试一下就知道了.
一样的,都只分配一次,看看这个:
#include <stdio.h>
void main( void )
{
int i;
printf("&i = %d\n\n", &i);
for(i=0; i<3; i++)
{
int t = i;
printf("&t = %d, t = %d\n", &t, t);
}
printf("\n");
for(i=0; i<3; i++)
{
int k = i;
printf("&k = %d, k = %d\n", &k, k);
}
int m;
printf("\n&m = %d\n", &m);
int n;
printf("&n = %d\n", &n);
}
执行结果:
&i = 1245052
&t = 1245048, t = 0
&t = 1245048, t = 1
&t = 1245048, t = 2
&k = 1245044, k = 0
&k = 1245044, k = 1
&k = 1245044, k = 2
&m = 1245040
&n = 1245036 |
|