用指针输出数组的内容 求高手指导
时间:10-02
整理:3721RD
点击:
#include <iostream>
#include <string.h>
using namespace std;
#define EOD ('\0')
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!='\0';*p++) //输出数组不正常 多输出后面无效数值
//for(;p!='\0';p++) //此方法不行直接导致电脑无限制输出
// for(;*p!='\0';p++) //不行和第二种一样
//while(*p) //不行和第二种方法一样
//do while 不行
//while(*p!='\0') //不行 和上面的方法一样
// while(p-a<sizeof(a))
//此方法更不靠谱 输出错误
i = sizeof(a)/sizeof(a[0]); //这种方法正确
while(p-a<i)
//for(;*p++!='\0';)
{
// cout<<p<<"\t"; //输出p的地址
cout<<*p<<endl;
*p++;
}//while(*p!='\0'); //do while 不行
system("pause");
return 0;
}
/*
试了好几种方法都无法输出,有能输出的在后面注释
*/
#include <string.h>
using namespace std;
#define EOD ('\0')
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!='\0';*p++) //输出数组不正常 多输出后面无效数值
//for(;p!='\0';p++) //此方法不行直接导致电脑无限制输出
// for(;*p!='\0';p++) //不行和第二种一样
//while(*p) //不行和第二种方法一样
//do while 不行
//while(*p!='\0') //不行 和上面的方法一样
// while(p-a<sizeof(a))
//此方法更不靠谱 输出错误
i = sizeof(a)/sizeof(a[0]); //这种方法正确
while(p-a<i)
//for(;*p++!='\0';)
{
// cout<<p<<"\t"; //输出p的地址
cout<<*p<<endl;
*p++;
}//while(*p!='\0'); //do while 不行
system("pause");
return 0;
}
/*
试了好几种方法都无法输出,有能输出的在后面注释
*/
int a[] = {10,15,56,89,101,854,66};
int *p ; p=a; //把数组首地址给指针
while(*p)
{
p++;
}
你要区别输出字符串和输出数值,输出字符串才用到'\0',输出数值用‘\0’肯定会出错的
完全不懂