我是学计算机的,有几道C语言的题目,请高手帮忙解答一下(关于指针的),谢谢!
1、sub(intx,inty,int*z){*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);p...
1、
sub(int x,int y , int *z)
{ *z=y-x;}
main()
{int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%4d,%4d,%4d\n",a,b,c);
}
2、
main()
{int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(-*p1)/(*p2)+7;
printf("a=%d,b=%d\n",a,b);
}
3
main()
{char*p="%d,a=%d,b=%d\n";
int a=111,b=10,c;
c=a+b;
p+=3;
printf(p,c,a,b);
} 展开
sub(int x,int y , int *z)
{ *z=y-x;}
main()
{int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%4d,%4d,%4d\n",a,b,c);
}
2、
main()
{int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(-*p1)/(*p2)+7;
printf("a=%d,b=%d\n",a,b);
}
3
main()
{char*p="%d,a=%d,b=%d\n";
int a=111,b=10,c;
c=a+b;
p+=3;
printf(p,c,a,b);
} 展开
5个回答
展开全部
c语言中,函数形参为指针,则想函数传递的是实参的地址,对 *指针 的操作会反映到实参上
就像
1题中 sub(10,5,&a); 向形参z传递的是 a的 地址,在 函数中对 *z 的操作就是对a的操作 因此 a,b,c分别为-5,-12,-7;
2题中 判断p1==&m为假 那么a当然就是0了;b=(-*p1)/(*p2)+7也就是b=-4/6+7,b就为7
3题中 p是指向char类型的指针 p+=3后 *p=“a=%d,b=%d\n”; 于是输出 a=121,b=111
指针就是指向一个变量的地址 的变量 而 *指针 就是所指向的变量
就像
1题中 sub(10,5,&a); 向形参z传递的是 a的 地址,在 函数中对 *z 的操作就是对a的操作 因此 a,b,c分别为-5,-12,-7;
2题中 判断p1==&m为假 那么a当然就是0了;b=(-*p1)/(*p2)+7也就是b=-4/6+7,b就为7
3题中 p是指向char类型的指针 p+=3后 *p=“a=%d,b=%d\n”; 于是输出 a=121,b=111
指针就是指向一个变量的地址 的变量 而 *指针 就是所指向的变量
展开全部
没什么可说的啊 1.就是相加 用指针可以把值反回来 15 22 37
2.a应该是个地址 b=6
3.P向下走了3个 输出应该是 a=121,b=111 真正的b没输出来
2.a应该是个地址 b=6
3.P向下走了3个 输出应该是 a=121,b=111 真正的b没输出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题,由子函数sub知*z=y-x 可以知道a=5-10=-5 ,b=a-7=-5-7=-12 ,c=b-a=-12-(-5)=-7
第二题
先是判断 a=p1==&m即a=(p1==&m) 由于P1不等于&M 所以a=0;接着是b=(-*p1)/(*p2)+7
由上面可知 *p1=4 , *p2=6则b=-4/6+7=7
第三题 a=121,b=111
为什么?楼主看懂前面两道就知道了! ——
第二题
先是判断 a=p1==&m即a=(p1==&m) 由于P1不等于&M 所以a=0;接着是b=(-*p1)/(*p2)+7
由上面可知 *p1=4 , *p2=6则b=-4/6+7=7
第三题 a=121,b=111
为什么?楼主看懂前面两道就知道了! ——
追问
第三题 p=? c=?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.-5 , -12, -7
2.语句问题
3.a=111,b=10
2.语句问题
3.a=111,b=10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针就是地址,将一个指针指向一个变量的地址后,以后你对指针操作,就是对变量的地址进行才操作,当然也就是对变量进行操作,第一题就很好的说明了这个问题,sub(10,5,&a);是将a的地址传给了指针z,对z进行运算,a的值跟着改变,明白指针的含义,这些题应该没什么问题
第三题有点意思,* p是声明一个字符类型的指针变量p,如楼上所说,p+=3是将b的位置移动了3
第三题有点意思,* p是声明一个字符类型的指针变量p,如楼上所说,p+=3是将b的位置移动了3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询