问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中指针*p++为什么和*(p++)等价?38

发布网友 发布时间:2023-10-15 04:05

我来回答

5个回答

热心网友 时间:2023-11-18 15:16

p++ 是后缀加加,C/C++规定,后缀加加,在当前表达式中 不自增1,而用原来的值,出了表达式后再自增 1.

不同于前缀加加。前缀加加 ++p 的话,先增1,然后用于表达式,出了表达式就不再自增。

所以,x= *(p++) 就等于 x=*(p); 或 x=*p; 执行完毕后 再 做 p=p+1.

x= *p++ 里是 后缀加加, 当前表达式中 不自增1, 所以它就等价于 *p.

热心网友 时间:2023-11-18 15:16

第一个问题答案:首先*p++中*(取值)的优先级和++是同一优先级的,*( 取值)和++是从右往左结合的,即在执行语句*p++时,是从右往左执行的,所以*p++和*(p++)等价;
第二个问题答案:
就是楼上金色潜鸟回答的,p++做表达式变量时,在表达式中先使用p的值,等做完表达式之后p的值再+1;如果是++p的话就是先自+1,再参与表达式的计算。
记住一个公式好了,++在前,先自加再运算。++在后,先运算再++

热心网友 时间:2023-11-18 15:16

因为单目运算符++(自增运算)和*(这里的*是指针运算符而不是乘法运算符),它们的优先级别是同一级的,这一级的结合顺序自右向左,所有,*p++,先运行p++,后执行*运算符。
详细情况可以看一下运算符号优先级详情。

热心网友 时间:2023-11-18 15:17

*和++具有相等的优先级,但它在结合时是从右向左进行的,p++在C中是先使用p后加1的,所以
*(p++) == (x = *p,p = p+1)

热心网友 时间:2023-11-18 15:18

子表达式p++的值总是p自增前的值,这是C语言的规定
c语言中指针*p++为什么和*(p++)等价?

p++ 是后缀加加,C/C++规定,后缀加加,在当前表达式中 不自增1,而用原来的值,出了表达式后再自增 1.不同于前缀加加。前缀加加 ++p 的话,先增1,然后用于表达式,出了表达式就不再自增。所以,x= *(p++) 就等于 x=*(p); 或 x=*p; 执行完毕后 再 做 p=p+1.x= *p++...

C语言中 *p++和 *(p++)是等价的吗 为什么

是等价的。是取值运算符,++是后置自加运算符。++的结合性要比*强,所以无论是*p++,还是*(p++)都是p与++结合。即先去p上的值,再将指针p自加。要让++与*p结合,需要使用 (*p)++ 这样是先取*p的值,然后把*p自加。

c语言中,p为指针,那么*p和&p是一样的吗,什么区别

在声明指针变量的时候,*p表示声明p是指针变量,比如int *p(声明p为int型指针变量);在调用指针变量的时候,*p表示指针变量p所指向的变量的值,比如int a=5,b; int *p;(声明p为int型指针变量),p=a; b=*p;(把p所指向的变量的值,即a的值赋给变量b)。对于&p,则是代表变量p的地址...

c语言,p是指针,如何理解 !p 等价于 (p==null)

!p表示p为真是表达式为假,p为假是表达式为真

C语言中(*p)和*(*P)的含义是什么?

操作符,就是操作其后表达式所在地址的值,可以读,也可以写 还可以作为乘法运算符 还可以用来声明指针变量 这个要看具体情况 int a=6;int *p=&a; //这里的*p只是定义p为指针的意思 //*p 其实就相当于a printf("%d", *p);//输出6 p=5; //结果是a也等于5 int (*p)(int a, int b...

C语言问题*p与(*p)的区别

double *p(int, int*) //这个是声明一个函数,此函数返回双精度浮点型指针,有两个参数,分别是整型和整型指针 double (*p)(int, int*) //这是声明一个指针,此指针是一个函数指针,指向一个函数,这个函数有两个参数:整型数和整型数指针;返回值是双精度浮点型数 ...

c语言中指针p与*p的问题

例2里面的*q=&b; 等效于 int *q; q=&b; 两条语句 q是指针,指向了b的地址,*q是该地址的内容,也就是b的数值,所以 *q和 b是等价的

c语言指针问题,输入函数中*p和p的区别

用scanf("%d",&a)是将数存入一个空间地址,而pa已经是一个地址,所以可以直接写出scanf( "%d%d", pa, pb);

C语言指针*p与p有什么区别?printf输出表列要哪个?为什么?

声明为指针以后,“语句”里,出现 *p, 表示 是 数值,出现 p, 表示 是 地址。int a=5;int *p=&a; printf("%d", *p); // 打印 数值 5 如果 写 printf("%d", p); 不带星号的,则是 a的地址。

c语言指针*p和p

需要说明的是 p=&k;这种赋值方式是错误的;p为指针变量,它的作用是指向的是k在内存中的地址,而不能给他本身赋值;若需k的地址,则可直接用p=&k;printf("%d",p);你的问题补充令人费解,不知你说的pk,pm,为何物...

c语言中为什么要用指针 c语言中指针什么意思 c语言中swap是什么意思 c语言中指针就是一个 c语言中对指针的理解 C语言调用acc和p *p++和(*p)++的区别 *p++和*++p 指针p
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
五羊本田摩托车125c太费油 拖泥带水,束手无策,是什么生肖? 北汽幻速S7两年车都有哪些费用? 新北汽幻速s7这款车后期的维护大致要多少钱?花费大吗? 新学期的打算250字作文。。。急急 一般冷暴力的话有什么? 逻辑学怎么造句 想知道: 松原市 从长岭县到集体乡胜利村怎么坐公交 孕期不同阶段进行自然胎教的方法 香港路•浅水湾配套信息 环球有什么用? 打排球如何保护手腕! 虚拟货币DBM会跌到O没有了吗? 寄顺丰可以用临时身份证吗 铁和浓酸反应会发生钝化,原由是:生成致密的氧化膜,是什么膜?...18 当使用投影仪测量圆的直径的时候,取3个点和取4个点有什么区别...4 臭豆腐是怎么做的?1165 怎么样可以查到法院的判决结果427 请大家帮我取个女孩的名字,姓吕,我很喜欢“莜”字,最好能把这... 两个手机一个是800万像素还带氙气闪光灯另一个是500万有自...2 学校让老师写公众号合法吗 公式不对 DNF组队刷图和刷深渊,攻击速度变慢怎么回事? DNF华丽大枪求帮助,为什么同样的装备移动速度就是比漫游,弹药还有其他... 安徽亳州中洲汽车销售服务有限公司怎么样? 85版本的DNF双开同步最强的职业是什么? 环球具体有什么作用? usb反向充电是什么意思 "爱美之心,人皆有之;尚美之道,千古之风"出自哪里?3 爱美之心人皆有之的出处98 一个可以在两部手机同时登陆吗? C语言指针*p与p有什么区别?printf输出表列要哪个?为...24 欧洲旅游去法兰克福好吗? 生命是什么读后感300字24 excel表格中 如果A列中的数字等于B列中的任意值 则C列等于D列 比如A1... 适合40多岁的男人的手机铃声15 环球有什么用?45 在影像测试仪(投影仪)上,如何测量两个圆的距离(非中心距)?2 青岛巨人电梯销售有限公司怎么样? “爱美之心,人皆有之”这句话对还是错?4 爱美之心,人皆有之的正宗翻译1 巨人通力电梯有限公司济南分公司怎么样? 爱美之心,人皆有之。后一句是什么?是既然读书美,何乐而不为。... 女主是星际女王,意外来到地球了,遇见了男主,她利用系统继续处...1 粘蝇纸是谁发明的?主要成份是什么呢?6 男主叫太昊,女主忘了叫什么,女主后来换了一个系统,叫瑟,是快...128 dnf双开同步怎么不管用啊? 那位可以帮帮忙 Fe,Al的钝化6 如果发现有人在背后说你坏话,该怎么办?1214 比特币大跌,这种新兴的虚拟货币值得推广吗?