c语言的* p++什么意思?

如题所述

*p++就是先取出指针p指向的地址单元的数据,之后再将该值加1。

由于运算符 * 的优先级高于运算符 ++,所以是先取指针p指向的地址单元的数据。

若果是*(p++),那么就是先将地址加1,之后取出新地址中的数据。

在c语言中 ++的优先级大于* i=*p++ 相当于 i=*(p++),又相当于 i=*p; p++; 但并不像bkldhldbk所说"*p++就是:p自身加1后取该指针所指的值" 。

扩展资料:

c语言的优先级的几个情况

优先级反转

由于具有降低优先级的任务长时间占用共享资源,造成申请该资源的优先级最高的进程始终处于等待状态,此时其他比占用资源优先级高但比等待资源进程优先级低的进程将获得处理器的使用权,并先于优先级最高的处于等待状态的进程先结束。

发生的防止

ucos中可以利用互斥型信号量解决上述问题。互斥型信号量创建函数申请一个比使用某共享资源的所有进程中比最高优先级更高的优先级作为预留。

当某个进程调用pend函数申请使用该共享资源,同时该资源已经被占用时,pend函数会判断是否需要提升占用该资源进程的优先级,以使其尽快释放所占用的资源,从而防止优先级反转的发生。

优先级等级

任务的优先级等级与相对截止期、空闲时间之间的层次关系可以用一种线性关系来描述,如:

di+ksj=g

其中,k为线性关系的斜率,g 可以看成是优先级等级。对于确定的斜率k,g 越小,优先级等级越高。比如,对于g1<g2,满足di+ksj=g1的任务优先级要高于满足di+ksj=g2的任务优先级。

参考资料来源:百度百科--C语言

参考资料来源:百度百科--优先级

温馨提示:内容为网友见解,仅供参考
无其他回答

* p++是什么意思啊?
p++是指下一个地址。++和*的优先级是一样的,不过它们计算时都是从右向左算的。

c语言的* p++什么意思?
p++就是先取出指针p指向的地址单元的数据,之后再将该值加1。由于运算符 * 的优先级高于运算符 ++,所以是先取指针p指向的地址单元的数据。若果是*(p++),那么就是先将地址加1,之后取出新地址中的数据。在c语言中 ++的优先级大于* i=*p++ 相当于 i=*(p++),又相当于 i=*p; p++; 但...

c语言中* p++代表什么意思?
在C语言中,*p++表示对指针p所指向的值进行访问,并将指针p向后移动一个位置。具体解释如下:p:表示访问指针p所指向的值。p++:表示将指针p向后移动一个位置,即指向下一个元素。所以,*p++的执行顺序是先访问p指向的值,然后将指针p向后移动一个位置。需要注意的是,后缀递增运算符++具有较高...

c语言中的* p++什么意思?
意思是根据*和++的优先级判断,那个高p就先和那个结合。c语言*p++ 就是先取出指针p指向的地址单元的数据,之后再将该值加1。由于运算符 * 的优先级高于运算符 ++,所以是先取指针p指向的地址单元的数据。具体如下:1、取数组当前位置的值*p;2、然后,p指向下一位置的数据。

c语言中* p++是什么意思?
p++的意思就是先取出指针p指向的地址单元的数据,之后再将该值加1。由于运算符 * 的优先级高于运算符 ++,所以是先取指针p指向的地址单元的数据。具体如下:1、取数组当前位置的值*p;2、然后,p指向下一位置的数据。

C语言中的* p++是什么意思?
p++就是先取出指针p指向的地址单元的数据,之后再将该值加1。由于运算符 * 的优先级高于运算符 ++,所以是先取指针p指向的地址单元的数据。若果是*(p++),那么就是先将地址加1,之后取出新地址中的数据。在c语言中 ++的优先级大于* i=*p++ 相当于 i=*(p++),又相当于 i=*p; p++; 但...

c语言中,*p++是什么意思
p是一个指向某个数组的指针,那么*p++ 是表示两个意思:一、取数组当前位置的值*p 二、然后,p指向下一位置的数据。p=p+1

c语言* p++是什么意思?
P++ :*和++都是同级运算符,右结合。但++要整个表达式运算完了才运算,先提取P指向对象的值,然后P再做++运算,指向下一个对象。*p++的意思就是先取出指针p指向的地址单元的数据,之后再将该值加1。下面具体区分 1、*p++:只将p加1 2、++p or p++:将p加1 3、++*p:将*p所指单元加1 ...

c语言中*(p++)是什么意思 *(++p)呢?最好列个例子 谢谢啦
呵呵,这是c语言运算符优先的问题 1、()的级别最高。2、*,++都是单目运算。级别是一样的。同级别的是从右往左结合的。3、p++表示把p先用,后把p+1 ++p表示先把p加1,然后用p 实例代码:include "stdio.h"include "conio.h"main(){ char a[5]={'a','b','c','d','e'};char...

c语言中(*p)++和*p++含义应该不同吧?
(*p)++ : 表示指针p所指的存储空间的值自加一次。p++ : 由于++的优先级高于*,所以先执行++,相当于*(p++);例:如有定义:int a[5]={10,20,30,40,50};int *p=a,b;如写成:b=*p++; 则b的值为10,p自加一次由a[0]的地址指向a[1]的地址(就是值为20的变量地址),其它不...

相似回答
大家正在搜