C语言指针解释 30

Inta[]={4,5,6,7,8};int*p=a;①*p++②(*p)++③*(p++)⑤++*p⑥*++p各个结果是多少,需要分析... Int a[]={4,5,6,7,8}; int * p= a;①* p++②(*p)++③*( p++)⑤++* p⑥*++ p各个结果是多少,需要分析 展开
 我来答 举报
White_MouseYBZ
2018-12-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6799万
展开全部
①* p++——取p指向的目标值4,并将p+1使其指向5,在表达式运算后++生效。
②(*p)++——(不计①的结果)将p指向的目标值4加1使其为5,在表达式运算后++生效。
③*( p++)——这与①完全一样。
⑤++* p——取p指向的目标值4并增1生效后参与表达式运算。
⑥*++ p——将指针p增1移到指向下一元素并取得,即5。
漠凡推k
2018-12-06 · TA获得超过2706个赞
知道大有可为答主
回答量:5179
采纳率:83%
帮助的人:288万
展开全部


  1. 指针是C语言中广泛使用的一种数据类型,指针的*主要出现在两个地方

  2. 首先是在指针定义时出现的*,定义时的 * 相当于标识了指针变量,即表明这是一个指针变量

  3. 其次,指针在使用时也会出现 *,这里的*的取内容的意思,即把指针内存储的东西提取出来使用




追问
分个解释一下
本回答被网友采纳
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
梦里余音仍绕梁
2018-12-07
知道答主
回答量:23
采纳率:42%
帮助的人:12.5万
展开全部

int*p = a;

解析:此时 p 指向第一个元素,即 4。

*p++;

解析:等价于 *(p++),* 和 ++ 优先级相同,按照右结合的顺序。目的在于将 p 本身加 1,顺便取 p 指向的元素的值,由于此处为后缀 ++ 所以取出的值为 p 加 1 之前所指向元素的值 4。语句执行完后 p 指向第二个元素,其值为 5。

(*p)++;

解析:目的在于将 p 所指向的元素的值加 1。语句执行完后 p 仍然指向第二个元素,不过此时为其值为 6。

*(p++);

解析:同前面,此时 p 指向第三个元素,其值为 6。

++*p;

解析:等价于 ++(*p),目的在于将 p 所指向的元素的值加 1。语句执行完后 p 仍然指向第三个元素,不过此时其值为 7。

*++p;

解析:等价于 *(++p),目的在于将 p 本身加 1,顺便取 p 指向的元素的值,由于此处为前缀 ++ 所以取出的值为 p 加 1 之后所指向元素的值 7。语句执行完后 p 指向第四个元素,其值为 7。

所以最后数组 a = {4, 6, 7, 7, 8}

做这些题主要是判断清楚,到底是 p 指向的值加 1,还是 p 本身加 1,然后注意一下前缀 ++ 和后缀 ++。

抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
阿波疵的
2018-12-07 · TA获得超过235个赞
知道小有建树答主
回答量:272
采纳率:72%
帮助的人:94.9万
展开全部
45555
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式