指针p p++和++p、p--和--p分别有什么区别???

发布网友 发布时间:2022-04-24 05:21

我来回答

4个回答

热心网友 时间:2022-05-03 00:34

1、p++ ++p相当于把p指针移动到p指针当前值加上sizeof(t)的位置,比如p=100,sizeof(t)=4,p++或者++p之后p等于104。

2、p-- --p相当于把p指针移动到p指针当前值减去sizeof(t)的位置,比如p=100,sizeof(t)=4,p--或者--p之后p等于96。

3、其中++或者--在后面,先以p当前位置来计算表达式,然后再移动指针位置;在前面先移动指针位置,再以移动后的位置计算表达式。


扩展资料:

指针的作用:

1、指针就是指向一个特定内存地址的一个变量。C语言指针可以有效地表示复杂的数据结构、动态分配内存、高效地使用数组和字符串、使得调用函数时得到多个返回值等。

指针的应用往往与数组联系在一起,是最频繁的,也是最基础的。在定义数组和函数时,系统都会为其自动分配一个指向其首地址的指针。对于一个数组,其名称就是一个指针变量。

2、指针只是一个变量,它存储一个内存地址。如果传入一个地址,比传入一个struct效率要高,因为少了一个拷贝过程。

3、指针能够有效表示数据结构,能动态分配内存,能较方便的使用字符串,有效的使用数组。4、指针直接与数据等的储存地址有关,是比较重要的。

比如,值传递不如地址传递高效,因为值传递先从实参的地址中提出值,再赋值给形参带入函数计算;而指针则把形参的地址直接指向实参地址,使用时直接提出数据,使效率提高,特别在频繁赋值等情况下。

热心网友 时间:2022-05-03 01:52

一、含义不同:

p-- --p相当于把p指针移动到p指针当前值减去sizeof(t)的位置,

p++ ++p相当于把p指针移动到p指针当前值加上sizeof(t)的位置,

二、使用不同:

比如p=100,sizeof(t)=4,p++或者++p之后p等于104。

比如p=100,sizeof(t)=4,p--或者--p之后p等于96。

三、表达式不同:

其中++或者--在后面,先以p当前位置来计算表达式,然后再移动指针位置;在前面先移动指针位置,再以移动后的位置计算表达式。

设一组指针变量

pa、pb、px、py、pm、pch1、pch2,分别指向上述的变量a、b、x、y、m、ch1、ch2,指针变量也同样被存放在内存,尽管所指向的变量类型不同,但是这些指针变量所占内存空间都是2个字节,而与所指向变量的类型无关。

如指针变量pa的值为2000,是变量a在内存的地址。因此,pa就指向变量a。变量的地址就是指针,存放指针的变量就是指针变量。

以上内容参考:百度百科-指针变量

热心网友 时间:2022-05-03 03:26

举例来
int a[n];
int *p=a;
p指向a[0];
p++指向a[0],但是之后则指向a[1];比如*p++=1,那么a[0]=1,然后p指向a[1];
++p指向a[1],之后p也指向a[1];
自减同上追问那么p++和++p最后运算的结果相同吗

追答最后的结果是一样的,都是p会自增,但是当时使用的时候值是不一样的

热心网友 时间:2022-05-03 05:18

设P当前值为1,X=P++,执行此语句后,X=1,P=2
设P当前值为1,X=++P,执行此语句后,X=2,P=2 P++是执行完后进行自加,++P是先进行自加。
同理P--和--P,一个是先执行后自减,一个是先自减,再执行。追问亲,首先明确p是指针

追答指针也一样啊。根据指针类型的不同,假定P指向地址为A的内存位置,执行P++时,还是指向A位置,但执行后P指向A地址的下一个位置了。如果是++P,执行时就指向A的下一个地址。2种方式执行后P均指向A的下一个地址了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com