我是学计算机的,有几道C语言的题目,请高手帮忙解答一下(关于指针的),谢谢!
发布网友
发布时间:2022-10-27 02:06
我来回答
共5个回答
热心网友
时间:2023-09-21 02:06
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
指针就是指向一个变量的地址 的变量 而 *指针 就是所指向的变量
热心网友
时间:2023-09-21 02:06
没什么可说的啊 1.就是相加 用指针可以把值反回来 15 22 37
2.a应该是个地址 b=6
3.P向下走了3个 输出应该是 a=121,b=111 真正的b没输出来
热心网友
时间:2023-09-21 02:07
第一题,由子函数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
为什么?楼主看懂前面两道就知道了! ——追问第三题 p=? c=?
热心网友
时间:2023-09-21 02:08
1.-5 , -12, -7
2.语句问题
3.a=111,b=10
热心网友
时间:2023-09-21 02:08
指针就是地址,将一个指针指向一个变量的地址后,以后你对指针操作,就是对变量的地址进行才操作,当然也就是对变量进行操作,第一题就很好的说明了这个问题,sub(10,5,&a);是将a的地址传给了指针z,对z进行运算,a的值跟着改变,明白指针的含义,这些题应该没什么问题
第三题有点意思,* p是声明一个字符类型的指针变量p,如楼上所说,p+=3是将b的位置移动了3