C++编程语言
1,假定P是一指针变量,下列指针表达式中正确的是(A)A,++P++B,(++P)++C,++(P++)D,P++-=3最好解析一下...
1,假定P是一指针变量,下列指针表达式中正确的是(A)
A,++P++ B,(++P)++ C,++(P++) D,P++-=3
最好解析一下 展开
A,++P++ B,(++P)++ C,++(P++) D,P++-=3
最好解析一下 展开
展开全部
你好:
表达式正确的是: B: (++p)++;
A: ++p++ : 由于后自加的优先等级高于前自加,所以++p++ 可等于++(p++);
分析:
(p++)可表示为:type i = p; ++p; return i; (注:++p 表示为: p = p + 1)
//////////
由于p 是一个指针变量,即p 的值指的是一个目标地址的数据值,所以 p 只能做为右值(注:左值相当于变量的内存地址值,右值相当于数据值);
所以此处的p 可以 p++ ,却不可 ++p ;
即排除 A C;
D中 所表示的是 p++ 后, p -= 3 分解为 p = p -3; (注:由于p 不能为左值,所以D项错误)
即 上述选择 答案为 B : (++p)++ ; 为正确表达式;
表达式正确的是: B: (++p)++;
A: ++p++ : 由于后自加的优先等级高于前自加,所以++p++ 可等于++(p++);
分析:
(p++)可表示为:type i = p; ++p; return i; (注:++p 表示为: p = p + 1)
//////////
由于p 是一个指针变量,即p 的值指的是一个目标地址的数据值,所以 p 只能做为右值(注:左值相当于变量的内存地址值,右值相当于数据值);
所以此处的p 可以 p++ ,却不可 ++p ;
即排除 A C;
D中 所表示的是 p++ 后, p -= 3 分解为 p = p -3; (注:由于p 不能为左值,所以D项错误)
即 上述选择 答案为 B : (++p)++ ; 为正确表达式;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询