int a[10] , i , *p ; p=a; 则p++; p指向谁? p+i指向谁?,*p++ ,*(++p) ,(*p)++的作用分别是什么

2024年11月16日 15:41
有1个网友回答
网友(1):

p=a; -指向数组的第一个地址a[0];
*p++ :利用指针的移动可以使用++ 和 -- 这两个运算符,利用++可以移动地址
比如*p=a[0]; *p++后*p=a[1];
同理:*(++p) 是 *++p后 先将指针p自增1 操作后再取出该值
(*p)++
(*p)++ 先去指针p指向的值(数组第一个元素1),再将该值自增
不加括号是直接指向下一个值;
加上括号是先指向该值让后在让指针后移
#include
void main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
printf("%d\n",*p++);
printf("%d\n",*(p)++);
for(i=0;i<10;i++)
printf("%d\t",a[i]);
}