指针p p++和++p、p--和--p分别有什么区别???? 5
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、指针直接与数据等的储存地址有关,是比较重要的。
比如,值传递不如地址传递高效,因为值传递先从实参的地址中提出值,再赋值给形参带入函数计算;而指针则把形参的地址直接指向实参地址,使用时直接提出数据,使效率提高,特别在频繁赋值等情况下。
2024-08-07 广告
一、含义不同:
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。变量的地址就是指针,存放指针的变量就是指针变量。
以上内容参考:百度百科-指针变量
设P当前值为1,X=++P,执行此语句后,X=2,P=2 P++是执行完后进行自加,++P是先进行自加。
同理P--和--P,一个是先执行后自减,一个是先自减,再执行。
亲,首先明确p是指针
指针也一样啊。根据指针类型的不同,假定P指向地址为A的内存位置,执行P++时,还是指向A位置,但执行后P指向A地址的下一个位置了。如果是++P,执行时就指向A的下一个地址。2种方式执行后P均指向A的下一个地址了。
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会自增,但是当时使用的时候值是不一样的