<pre name="code" class="cpp">#include <stdio.h>
int main(void)
{
int *p;
int a[] = {11,2,5,6};
p = a;
*p++;
printf("p=%p *p=%d\n", p, *p);
p = a;
*(p++);
printf("p=%p *p=%d\n", p, *p);
p = a;
(*p)++;
printf("p=%p *p=%d\n", p, *p);
p = a;
*++p;
printf("p=%p *p=%d\n", p, *p);
p = a;
*(++p);
printf("p=%p *p=%d\n", p, *p);
return 0;
}
/*
akaedu@akaedu-G41MT-D3:~/lin/719_point$ ./a.out
p=0xbfa0a8d0 *p=2
p=0xbfa0a8d0 *p=2
p=0xbfa0a8cc *p=12
p=0xbfa0a8d0 *p=2
p=0xbfa0a8d0 *p=2
*/
<pre name="code" class="cpp">*p++与*(p++)是等价的,表示取p所指单元的值,p指向下一单元,即p自加1。
(*p)++表示取p所指单元的值,这个单元的值自加1。
//下面主测试程序及运行情况。
#include<stdio.h>
void main()
{
int a[]={1,1,1,1},*p;
p=a;
*p++;
printf("p=%d *p=%d\n",p,*p);
p=a;
(*p)++;
printf("p=%d *p=%d\n",p,*p);
}
//程序运行情况:
p=1439896 *p=1
p=1439892 *p=2
请按任意键继续. . .
*p++与*(p++) (*p)++ *++p *(++p)
最新推荐文章于 2022-11-14 00:36:39 发布