问题 单项选择题

若有定义语句:int year=2009, *p=&year;,以下不能使变量year中的值增至2010的语句是_______。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*p++;

答案

参考答案:D

解析:【解析】此题测试考生对运算符优先级判别和表达式运算法则中结合方向的判断:根据运算符优先级规定,*是2级,+=j是14级;++是2级。A) *p+=1; 等效于year=year+1 B)(*p)++等效于year++ (“C语言程序设计”P224) C)++(*p) 等效于year++ D) *p++; 由于两个运算符处于同一级别,且结合方向自右而左,等效于*(p++),这样p不指向year了,year维持不变,p指向year 下一个地址的值,上机调试下一个地址的值为1245120。

单项选择题
多项选择题