用指针输出数组的内容 求高手指导

2019-07-14 20:00发布

#include <iostream>
#include <string.h>

using namespace std;
#define EOD  ('')
int main()
{
        int a[] = {10,15,56,89,101,854,66};
        int *p = &a[0];  //把数组首地址给指针
        //
        int i;

        for(int j=0;j<7;j++)  //输出数组数值正常
        //for(;*p!='';*p++)  //输出数组不正常 多输出后面无效数值
    //for(;p!='';p++)  //此方法不行直接导致电脑无限制输出
    // for(;*p!='';p++)   //不行和第二种一样
    //while(*p)      //不行和第二种方法一样
        //do   while 不行

        //while(*p!='')  //不行 和上面的方法一样
  // while(p-a<sizeof(a))   
        //此方法更不靠谱 输出错误

     i = sizeof(a)/sizeof(a[0]);  //这种方法正确
         while(p-a<i)
        //for(;*p++!='';)
        {
        //        cout<<p<<" ";  //输出p的地址
                cout<<*p<<endl;
                *p++;
        }//while(*p!='');  //do while 不行
        system("pause");
        return 0;
}

/*
试了好几种方法都无法输出,有能输出的在后面注释

*/

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。