这里是一个程序,我写它来逐个输出一个字符串的所有字符。但我也打印阵列的各个块的地址。问题是所有块的地址是相同的。为什么? 有人知道吗?为什么指针给所有数组块的地址相同?
#include<stdio.h>
int main()
{
char enter[]="Kinsman";
char *ptr;
ptr=enter;
int i=0;
while(*ptr!='\0')
{
printf("%c%p\n",*ptr,&ptr);
ptr++;
for(i=0;i<=100000000;i++);
}
return 0;
}
'for(i = 0; i <= 100000000; i ++);'??为什么这个 –
@GrijeshChauhan回到我的老ATARI 800XL上,等待一秒钟就可以很容易地用'FOR I = 1到500:NEXT I'完成。但这种方法 - 等待循环 - 已经过时了大约20年。 – glglgl
@glglgl是的,我在过去的某个地方读过它,它会消耗CPU周期。 ~~但是C编译器可以通过替换'i = 100000000;'来优化它,这是不可靠的。正确? –