*p++
#include<stdio.h>
#include<stddef.h>
#include<string.h>
void main()
{
int str[]={1,2,3,4,5};
int *p=str;
//*p++;
printf("%x\n",p);
printf("%d\n",*p++);
printf("%x\n",p);
printf("%x\n",*p);
}
*p++ 先取指针p指向的值(数组第一个元素1),再将指针p自增1;
运行结果:
(*p)++
#include<stdio.h>
#include<stddef.h>
#include<string.h>
void main()
{
int str[]={1,2,3,4,5};
int *p=str;
//*p++;
printf("%x\n",p);
printf("%d\n",(*p)++); //先取出*p的值,在让*p的值++
printf("%x\n",p);
printf("%x\n",*p);
}
(*p)++ 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2,但是p指针指向的地址并没有发生变化。
运行结果:
*++p
#include<stdio.h>
#include<stddef.h>
#include<string.h>
void main()
{
int str[]={1,2,3,4,5};
int *p=str;
printf("%d\n",*++p);
}
先将指针p自增1(此时指向数组第二个元素),* 操作再取出该值
运行结果:
++*p
先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2),但是p指向的地址不发生变化。
#include<stdio.h>
#include<stddef.h>
#include<string.h>
void main()
{
int str[]={1,2,3,4,5};
int *p=str;
printf("%x\n",p);
printf("%d\n",++*p);
printf("%x\n",p);
}
运行结果:
本文详细解析了C语言中指针的各种操作,包括*p++、(*p)++及*++p的区别,通过具体的代码示例展示了每种操作的效果及其对内存中数据的影响。

1万+

被折叠的 条评论
为什么被折叠?



