为什么会报错难道不能这么强制转换后取值么(刚接触c)
#include<stdio.h>
int main() {
int i = 100;
int* p = &i;//指针p中保存i对应的内存地址
int c = &p; //p的地址
int a = *p;//指针p指向内存地址对应的值
printf("%d\n", p);//打印i的内存地址
printf("%d\n", &i);//打印i的内存地址
printf("%d\n", c);//打印p的地址
printf("%d\n",*p);//打印指针p指向内存地址对应的值
printf("%d\n",a);//打印指针p指向内存地址对应的值
*p = 50;//直接使用指针修改原始变量i的值
printf("%d\n", i);//修改后i的值就是50了
int f = 2;//定义一个整形的数据
int t = &f;//将其地址赋值给一个整形变量t
printf("f的地址是%d\n", t);
//因为整形变量t不是指针类型所以要先强转成指针类型再修改值(此时*(int*)t应该等于f的值2)
int h = *(int*)t;
printf("将变量t强转为指针类型后取出对应地址的值%d\n",h);
return 0;
}