*p++与*(p++) (*p)++ *++p *(++p)

<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))