设int b,a[ ]=(1,2,3,4),*p=a;,与b=*p++;等价的语句是【 】
A、b=*(++p);
B、b=*(p++);
C、=p++;
D、b=*++p;
【正确答案】:B
【题目解析】:b=*(++p) 与b=*++p等价,含义都是指针p加1后指向a[1],取出元素a[1]的值赋给变量b。*p++中的运算符*和++的优先级是相同的,他们的结合方向是自右至左,b=*(p++);和b=*p++;等价,含义都是取出指针p所指元素a[0]的值赋给变量b,然后指针p加1后指向a[1]。另外, int i=10, *p=&i; *p+=1; /*该语句等价于i+=1;*/ ++*p; /*该语句等价于++i;*/ (*p)++; /*该语句等价于i++;*/ *p++; /*该语句的作用是先取*p的值作为表达式的值,指针p加1;*/