int main()
{
float a[5] = {0};
float* b = a;
for (int i = 0; i < 5; i++)
{
*++b = i;
printf("%f %f\n", a[i], *b);
}
return 0;
}
1.为啥两种打印方式出来的结果不一致,我想不通a[i]为啥会有两个0,*b不就是取的a地址的值吗,怎么还对不上
2.这个警告是啥,也没报错,也没阻止代码运行,就是每次都弹出来
int main()
{
int a[5] = {0};
int* b = a;
for (int i = 0; i < 5;i++ )
{
*b++ = i;
printf("%d %d\n", a[i], *b + i);
}
printf("\n%p\n", a);
return 0;
}
3.两段代码除类型外都一致,为啥float不需要+i就能完整打印数组,而int+i还最后一位溢出呢(不+i打印不出来)
4.这个地址不应该是固定的吗,为什么我打印一次就会变一次