求解一道C++程序分析题 及详细解题过程
intNum[4]={1,2,3,4};那么*((int*)(&num+1)-1)等于多少?各个运算符的具体意义是什么?求解答...
int Num[4]={1,2,3,4};
那么*((int*)(&num+1)-1)等于多少?各个运算符的具体意义是什么?求解答 展开
那么*((int*)(&num+1)-1)等于多少?各个运算符的具体意义是什么?求解答 展开
3个回答
展开全部
我自己的感觉,对错勿论
&num这个是num的地址也就是内存中的地址
&num+1 地址加1:地址加减都是1个1个加的
假设num的地址为1000,则&num+1 =1001 ,
(int *)(&num+1) -1,按整形读取(加减变成4个4个加) 则读取出来的地址为 997
然后取地址*(。。)为1吧(纯粹是造的)
只能做到这里了,尽力了,没有功劳也有苦劳吧
&num这个是num的地址也就是内存中的地址
&num+1 地址加1:地址加减都是1个1个加的
假设num的地址为1000,则&num+1 =1001 ,
(int *)(&num+1) -1,按整形读取(加减变成4个4个加) 则读取出来的地址为 997
然后取地址*(。。)为1吧(纯粹是造的)
只能做到这里了,尽力了,没有功劳也有苦劳吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1吧。&是取num的地址
追问
Num本身不就是个地址嘛?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询