两个问题,关于C++的表达式与数组指针

 我来答
义朗紫新
2019-12-18 · TA获得超过3767个赞
知道大有可为答主
回答量:3060
采纳率:32%
帮助的人:364万
展开全部
1.
你第一步分析没错,y*=2*y+1
这个表达式的值,就是y*=这个赋值的结果10

所以y+=y*=2*y+1相当于y+=10,注意这个时候y已经是10了,所以结果是20
2.
p是指向长度为2的数组的指针,赋值p=a以后,p和a就是等效的了。现在拿a来讨论
a+2相当于&a[2],**(a+2)相当于**(&a[2])即*a[2]即a[2][0],现在知道答案了吧
逯化胡景曜
2019-07-23 · TA获得超过4258个赞
知道大有可为答主
回答量:3109
采纳率:29%
帮助的人:163万
展开全部
都是基础问题。
1·等号算式是右优先的,也就是先
y*=2*y+1=
10;后y+=y
=20
2·对于a来说,是多维数组,但地址存储里面就是占有6个int的顺序空间,所以指针p赋值得到就是一个地址,+2就是地址空间+2,和a是几维的没什么关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金融智慧导师
2019-02-18 · TA获得超过3505个赞
知道大有可为答主
回答量:3003
采纳率:29%
帮助的人:412万
展开全部
b就是地址,是这个字符数组的首地址;当我们(定义一个指针变量时比如此例的b,在变量前面加一个“*”号,说明这是一个指针变量),*
b就是指针变量,但在代码中b才是地址,*
b是该地址指向的数据,在定义中的*
b和代码中的*
b意义是不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
罗苇暴海宁
2020-03-31 · TA获得超过3470个赞
知道大有可为答主
回答量:2955
采纳率:25%
帮助的人:236万
展开全部
1.每条表达式运算完后都会返回一个变量,如y*=2*y+1运算完后返回y,之后在参加其他运算y+=y,这条表达式运算完也返回y变量
2一一对应,**(a+2)相当于a[2][0]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式