早教吧作业答案频道 -->其他-->
指针问题设intx[]={1,2,3,4,5,6},*p=x;则数值为3的表达式是(B)。(A)p+=2,*++p(B)p+=2,*p++(C)p+=3,*p(D)p+=2,++*p*p++这个等于数值3不懂~求解释。。
题目详情
指针问题
设int x[ ]={1,2,3,4,5,6},*p=x;则数值为3的表达式是( B )。
(A) p+=2, *++p (B) p+=2, *p++
(C) p+=3, *p (D) p+=2, ++*p
*p++ 这个等于数值3不懂~求解释。。
设int x[ ]={1,2,3,4,5,6},*p=x;则数值为3的表达式是( B )。
(A) p+=2, *++p (B) p+=2, *p++
(C) p+=3, *p (D) p+=2, ++*p
*p++ 这个等于数值3不懂~求解释。。
▼优质解答
答案和解析
这其实考察了++的前置和后置的区别。
*p=x;将数组x的首地址赋值给p,即x[0]的地址,这样p就指向了数组。当执行完p+=2时,即指针偏移了2*4个字节,指向了x[2]元素,即值为3的地址,因此此时*p就为3了。
当++后置时,即*p++时,是先执行*p,输出指针p指向的地址中的值,即3,再++,此时指针p指向x[3]的地址;
当++前置时,即*++p时,因为自增运算符++的优先级高于取值运算符*的优先级,所以先执行++,即p存放x[3]的地址,指向x[3],再执行*p,则输出4。
要输出3,则应该为++后置,要输出4则应该为++前置。并且前提是p+=2,因此选择B。
记住++在变量位置的不同将导致不同的操作,一句话:++在变量前(即前置)则先执行++再取值运算;++在变量后(即后置)则先取值运算再执行++。
希望你能明白,希望对你有帮助,有啥疑问咱们再讨论,呵呵!
*p=x;将数组x的首地址赋值给p,即x[0]的地址,这样p就指向了数组。当执行完p+=2时,即指针偏移了2*4个字节,指向了x[2]元素,即值为3的地址,因此此时*p就为3了。
当++后置时,即*p++时,是先执行*p,输出指针p指向的地址中的值,即3,再++,此时指针p指向x[3]的地址;
当++前置时,即*++p时,因为自增运算符++的优先级高于取值运算符*的优先级,所以先执行++,即p存放x[3]的地址,指向x[3],再执行*p,则输出4。
要输出3,则应该为++后置,要输出4则应该为++前置。并且前提是p+=2,因此选择B。
记住++在变量位置的不同将导致不同的操作,一句话:++在变量前(即前置)则先执行++再取值运算;++在变量后(即后置)则先取值运算再执行++。
希望你能明白,希望对你有帮助,有啥疑问咱们再讨论,呵呵!
看了 指针问题设intx[]={1...的网友还看了以下:
设服从二项分布B~(n,p)的随机变量ξ的期望和方差分别是2.4与1.44,则二项分布的参数n、p 2020-05-15 …
已知关于x的方程x的平方+px+q=0的两个实数根为p,q.求p,q的值将p,q分别代入x²+px 2020-05-16 …
若在北回归线上建一太阳能光热电站,其高塔正午影长于塔高的比值为P,则()A、春、秋分日P=0B、夏 2020-05-17 …
已知命题P:存在m属于R,m+1<=0,命题q:对于任意x属于R,x2+mx+1>0恒成立.若p∩ 2020-05-17 …
在直线l:3x-y-5=0上找一点P,使P到A(5,1)B(4,4)的距离最小,求出最小值在直线l 2020-06-04 …
有点迷惑复利计算.1.复利终值已知现值P,年利率i,在复利计息的前提下,几年后本金与利息之和F即为 2020-06-12 …
¬(P↔Q)怎么推出(P∧¬Q)∨(¬P∧Q).古典逻辑.真值树系统推论的一步一步过程详细点.例子 2020-06-12 …
一个C指针问题#include#defineN10int*fun(inta[N],intn){in 2020-07-23 …
在直角坐标系中,已知点P(-2,-1)关于原点的对称点是P’,点T(t,0)是X轴上的一个动点.( 2020-08-01 …
求你们了!真的不会!谁会,大大地有赏设f(x)=x^2+px+q,g(x)=x^2+qx+p,p、q 2020-12-31 …