我试着运行这段代码,
int *p;
float q;
q = 6.6;
p = &q;
Run Code Online (Sandbox Code Playgroud)
虽然它会是一个警告,但我认为&q并且p大小相同,所以p可以有一个地址q.但是当我打印&q并且p我得到不同的输出.这是我的输出
*p = 6.600000
q = 0.000000, p = 0x40d33333, &q = 0x7fffe2fa3c8c
Run Code Online (Sandbox Code Playgroud)
我错过了什么?和p和&q是相同的当两个指针和变量类型是一样的.
我的完整代码是
#include<stdio.h>
void main()
{
int *p;
float q;
q = 6.6;
p = &q;
printf("*p = %f \n q = %f, p = %p, &q = %p \n",*p,q,p,&q);
}
Run Code Online (Sandbox Code Playgroud)