初学者 今天被指针搞晕了, 求大神解答下疑问
第一个疑问 :指针 指向和赋值 规范的正确操作方式是什么
目前我对指针的理解程度 指针大小8 但指向的内存区域可以操作
*p=a; 这是指针指向a的内存
p=&a; 这是把a的值赋给p 8 大小的内存上
第二个问题: 有个需求,需要把double的值赋给 *void 指针或者指向 之后打印要能正常显示
我的操作 如下 均不正常 ,这也是把我彻底搞晕了
double d=97.01;
double *dd;
dd=&d;
//*dd =d; *dd=&d; 报错
void *v1,*v2,*v3,*v4,*v5;
//void *v1=(double *)88.43;
//报错:error: cannot convert to a pointer type
//均报错的操作 v1=(double *)d; v1=(void *)d; v1=d; *v1=d; *v1=dd; *v1=*dd; v1=(void *)dd;
v2=&d;
v3=dd;
v4=ⅆ
// 有个奇怪现象 如果最先 打印printf("---double dd %lf %lf\n",d,*dd); 这条 下面的 第一种操作 可以正常打印 但注释这条后 下面的均输出0.000
printf("%lf , %lf , %lf \n",v2,v3,v4);
//输出 0.000000 , 0.000000 , 0.000000
printf("%lf %lf \n",v2,(double *)(v2));
//输出 0.000000 0.000000
//打印均报错的操作 *v2 和 (double *)(*v2) 和(double *)(v2) 和(double )(*v2)
printf("%lf %lf \n",v3,(double *)(v3));
//输出:0.000000 0.000000
printf("%lf %lf \n",v4,(double *)(v4));
//输出0.000000 0.000000
// v5 分配 void 和double 同样均 输出0.000000
v5=(double *) malloc (sizeof(double)*2);
v5 =&d;
printf("v5: %lf %lf\n",v5,(double *)v5);
//输出:v5: 0.000000 0.000000
//均报错的操作 *v5 和 (double *)(*v5) 和(double *)(v5) 和(double )(*v5)