以指针方式访问数组几种不同形式输出语句解析

来源:互联网 发布:淘宝动漫周边首饰 编辑:程序博客网 时间:2024/06/17 22:06

以指针方式访问数组几种不同形式输出语句解析

下面用一个实例来分析此问题,在如下代码中:

#include<iostream>using namespace std;int main(){    int a[]={1,3,5,7,9},*p;    for(p=a;p<a+5;)    {cout<<"a["<<p-a<<"]=";    cout<<*(p++)<<'\t';    cout<<endl;    system("pause");    }}

上面代码输出为:这里写图片描述
将输出表达式改为: *p++
输出为:这里写图片描述
将输出表达式改为:*(++p)
输出为:这里写图片描述
将输出表达式改为:*++p
输出为:这里写图片描述
将输出表达式改为:(*p)++
输出为:这里写图片描述
将输出表达式改为:++(*p)
输出为:这里写图片描述

从上面结果可以看出,运算符”++“要比”*“的优先级高。
*(p++)和 *p++相当于:先读*p输出,然后执行p++
(++p)和 ++p相当于:先执行p++,再读*p输出
(*p)++相当于:先读取数组第一个元素,然后对此元素进行”++“操作。
++(*p)相当于:先对数组第一个元素进行”++“操作,然后对其进行读取操作。

0 0
原创粉丝点击