关于c语言指针赋值的问题!

#include<stdio.h>#include<stdlib.h>main(){inta=3,b=4,*x,*y;*x=a;*y=b;printf("%d%d",*x... #include<stdio.h>
#include<stdlib.h>
main(){
int a=3,b=4,*x,*y;
*x=a;*y=b;

printf("%d %d",*x,*y);
system("pause");
return 0;
}
为什么这样赋值运行错误?
(2)int a=3,b=4,*x,*y;
*x=&a;*y=&b;
为什么这样也是错误的而
int a=3,b=4,*x,*y,*x=&a;*y=&b;
这种是正确的!
展开
 我来答
867773467
2012-02-01 · TA获得超过180个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:147万
展开全部
指针变量保存的是地址:在定义的时候进行初始化:*p=&a;这是&是取a的地址保存在变量p中,
在定义之外初始化时就应该是 p=&a;注意了,在定义之外的语句,*p是代表p所指向的地址的值,
也就是一个整形变量,而你把&a得到的地址赋值给*p,这怎么会是对的呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgm_123456
2012-02-01 · 超过18用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:50.7万
展开全部
请注意:
1、int *x,*y;仅仅是声明了一个指针(没有开辟空间,指针没有初始化则指向哪里是不确定),在这种情况下对一个指针赋值是未定义的。
2、正确使用指针。在定义指针时候要不就初始化为NULL,要不就指向某个存储空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bootgames
2012-02-02
知道答主
回答量:51
采纳率:0%
帮助的人:20万
展开全部
int a=3,b=4,*x,*y;
x=&a;
y=&b;
这是正确写法 就这么定义的
调用的时候
*x=3
*y=4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濯浚路焱
2019-03-27 · TA获得超过3603个赞
知道大有可为答主
回答量:3115
采纳率:34%
帮助的人:176万
展开全部
p和s都是指针,p=s(p指向的地址就和s的相同),所以p和s是一同改变的,即一旦p的赋值发生改变,s也变;q1->next=p(q1的后驱是p,q的前继为q1),所以,p->right=q1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丝琪5U
2012-02-02 · TA获得超过478个赞
知道答主
回答量:128
采纳率:0%
帮助的人:66.7万
展开全部
申请空间 x=(int *)malloc(size of(int));
y=(int *)malloc(size of(int));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式