关于C指针 如何获取指针指向的变量的值

#include<stdio.h>#include<stdlib.h>intmain(intargc,char*argv[]){floata,*b;a=3.14;//b=... #include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
float a,*b;
a=3.14;
//b=&a;
*b=3.14;//why it is wrong?
printf("a:%f\n",a);
printf("b:%f\n",*b);
system("PAUSE");
return 0;
}
一楼的,如何给指针赋初值?
我有一个指针, float *a, 然后有个操作是*a=3.14159,我如何先给指针赋初值,以及我如何取指针的内容?是用 *a吗?

只能通过把a的地址赋给b,给指针b赋值嘛?如果给b赋初值?只能通过把一个数存入变量,再把变量的地址给指针?对吗?谢谢。
展开
 我来答
xniren
推荐于2017-10-05 · TA获得超过1154个赞
知道小有建树答主
回答量:554
采纳率:100%
帮助的人:517万
展开全部
因为指针变量b尚未赋值,就访问它指向的内容,所以指令*b=3.14;是失败的。

给指针赋值语句是这样的:
b=&a; // 也就是你程序中注释掉的那行
给指针指向的内容赋值语句是这样的:
*b=3.14; // 前提是b必须先赋值
读取指针指向的内容的语句是这样的:
x=*b; // 其中x是一个float类型的变量,并且前提是b必须先赋值
古迪Guddi
2008-11-02 · TA获得超过244个赞
知道答主
回答量:116
采纳率:0%
帮助的人:63.6万
展开全部
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
float a,*b;
a=3.14;
b=&a;
*b=3.14;
printf("a:%f\n",a);
printf("b:%f\n",*b);
system("PAUSE");
return 0;
}
因为指针在使用前必须要先赋值。这里要把a的地址赋给b。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5d2d01fa0
2008-11-02 · TA获得超过2158个赞
知道小有建树答主
回答量:943
采纳率:0%
帮助的人:1412万
展开全部
不懂你什么意思:
//b=&a;
*b=3.14;//why it is wrong?
把注释去掉不就对了嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式