44问答网
所有问题
int i=1,j=2,*p,*q; p=&i; q=&j; *p=*q;与输入p=q时分别求解 printf("%d%d%d%d,i,j*p,*q");
希望C语言高手给求解!
int i=1,j=2,*p,*q; p=&i; q=&j; (*p=*q;与输入p=q时)分别求解 printf("%d%d%d%d",i,j,*p,*q);
举报该问题
推荐答案 2011-03-19
*p=*q时是2222,
p=q时是1222,
p=&i; q=&j;说明p和q里面存放着i和j的地址,*p和*q是对该地址处变量的引用,即*p=i,*q=j,执行*p=*q后i=j=2
后面的p=q是把q里面j的地址赋给p,也就是说p和q此时都指向了j,无法通过指针p来访问i了,只要记住一点就行了p和q都是指针,指针里存放的也是数值,就像a=b一样,p=q是把q里的东西给了p
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/G6WKZWYKG.html
其他回答
第1个回答 2011-03-19
一、改正你的printf语句,下面是正确的。
printf("%d%d%d%d",i,j,*p,*q);//你的引号位置不对,j后面少逗号。
二、改正后这个语句输出四个2
2222
第2个回答 2011-03-19
因该改成printf("%d%d%d%d",i,j,*p,*q)吧,
p=&i是将i的地址赋给p,则*p=i=1;
但后面*p=*q表示*p=*q=j=2;
结果应该是1 2 2 2
第3个回答 2011-03-20
A
相似回答
大家正在搜
相关问题
c语言中有如下定义:int i,j,*p,*q; 那么下列赋...
有定义int x=2,*p=&x;*q=p,一下赋值语句错误...
main() { int i=1; int *p=&i; i...
若有说明 int a=2;*p=&a,*q=p;则一下非法的...
c语言 int k=1,j=2,*p=&k,*q=p;p=&...
int a[3] = {1,2,3}; int*p, *q;...
C语言指针,int a=1; int *p; 其中p=&a和...
int a[] = {1,2,3,4,5,}; int *p...