【发布时间】:2010-04-27 18:38:15
【问题描述】:
我正在尝试 c 中的一些程序,但遇到了这个程序的问题 谁能告诉我这是什么问题,我也想知道,在上述情况下,如果指针值增加,那么它会将先前的值地址覆盖为
#include<stdio.h>
int main()
{
int a=9,*x;
float b=3.6,*y;
char c='a',*z;
printf("the value is %d\n",a);
printf("the value is %f\n",b);
printf("the value is %c\n",c);
x=&a;
y=&b;
z=&c;
printf("%u\n",a);
printf("%u\n",b);
printf("%u\n",c);
x++;
y++;
z++;
printf("%u\n",a);
printf("%u\n",b);
printf("%u\n",c);
return 0;
}
假设我们在上面的程序中得到的值(没有指针值的增量)是 65524 65520 65519 并且在增量之后指针的值是 65526(作为 int 的 2 个增量) 65524(作为浮动的 4 增量) 65520(作为 char 变量的 1 个增量)
那么如果在这种情况下,新的指针地址是否会覆盖先前地址的内容以及新地址中包含的值
【问题讨论】:
-
请不要把你的代码加倍。
-
您的变量声明令人困惑。我建议将任何带有初始化的声明单独放在它的行上。