error C2440: '=' : cannot convert from 'int' to 'int *'是什么意思
#include<iostream>usingnamespacestd;voidinvert(int*A,intn){int*temp;for(inti=0;i<5;i+...
#include<iostream>
using namespace std;
void invert(int *A,int n)
{
int *temp;
for(int i=0;i<5;i++)
{
temp=A[i];
A[i]=A[n-i];
A[n-i]=temp;
}
}
void main()
{
int a[8]={1,2,3,4,5,6,7,8};
int *A;
A=&a[0];
cout<<"排序前数组A的元素依次为:\n";
for(int i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<'\n';
invert(A,7);
cout<<"排序后数组A的元素依次为:\n";
for(i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<endl;
} 展开
using namespace std;
void invert(int *A,int n)
{
int *temp;
for(int i=0;i<5;i++)
{
temp=A[i];
A[i]=A[n-i];
A[n-i]=temp;
}
}
void main()
{
int a[8]={1,2,3,4,5,6,7,8};
int *A;
A=&a[0];
cout<<"排序前数组A的元素依次为:\n";
for(int i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<'\n';
invert(A,7);
cout<<"排序后数组A的元素依次为:\n";
for(i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<endl;
} 展开
5个回答
推荐于2018-02-28
展开全部
大意是不能将int型的数的值赋给指向int的指针变量。你的代码中的void invert(int *A,int n)
{
int *temp;
for(int i=0;i<5;i++)
{
temp=A[i];
A[i]=A[n-i];
A[n-i]=temp;
}
}temp是指向整型的指针变量,而A[i]却是int型,类型不同不能赋值,也不能进行强制转换,故出错;修改方法为定义temp的时候,定义成整型就行了。。更正后的代码:#include<iostream>
using namespace std;
void invert(int *A,int n)
{
int temp;
for(int i=0;i<5;i++)
{
temp=A[i];
A[i]=A[n-i];
A[n-i]=temp;
}
}
void main()
{
int a[8]={1,2,3,4,5,6,7,8};
int *A;
A=&a[0];
cout<<"排序前数组A的元素依次为:\n";
for(int i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<'\n';
invert(A,7);
cout<<"排序后数组A的元素依次为:\n";
for(i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<endl;
}
{
int *temp;
for(int i=0;i<5;i++)
{
temp=A[i];
A[i]=A[n-i];
A[n-i]=temp;
}
}temp是指向整型的指针变量,而A[i]却是int型,类型不同不能赋值,也不能进行强制转换,故出错;修改方法为定义temp的时候,定义成整型就行了。。更正后的代码:#include<iostream>
using namespace std;
void invert(int *A,int n)
{
int temp;
for(int i=0;i<5;i++)
{
temp=A[i];
A[i]=A[n-i];
A[n-i]=temp;
}
}
void main()
{
int a[8]={1,2,3,4,5,6,7,8};
int *A;
A=&a[0];
cout<<"排序前数组A的元素依次为:\n";
for(int i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<'\n';
invert(A,7);
cout<<"排序后数组A的元素依次为:\n";
for(i=0;i<8;i++)
cout<<A[i]<<'\t';
cout<<endl;
}
展开全部
出错报告说是赋值时发生错误,无法将整型数据转化为整型指针变量。
#include<iostream>
using namespace std;
void main()
{
int a[10],i,*p;
cout<<"请输入一组数据:";
for(i=0;i<10;i++)cin>>a[i];
p=a;
for(i=1;i<10;i++)
{if(*p<a[i])
p=&a[i];}//楼主这里漏掉一个&吧?
cout<<"最大值的地址是:"<<p<<endl;
cout<<"最大值是:"<<*p<<endl;//建议将&p改为*p,不要将两者搞混了。
}
#include<iostream>
using namespace std;
void main()
{
int a[10],i,*p;
cout<<"请输入一组数据:";
for(i=0;i<10;i++)cin>>a[i];
p=a;
for(i=1;i<10;i++)
{if(*p<a[i])
p=&a[i];}//楼主这里漏掉一个&吧?
cout<<"最大值的地址是:"<<p<<endl;
cout<<"最大值是:"<<*p<<endl;//建议将&p改为*p,不要将两者搞混了。
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,你要定义的是一个数组指针(即指向数组的指针)int (*p)[2],而不是指针数组int *(p)[2]。所以要这么写
int a[2][2]={1,2,3,4};
int (*p)[2];
p=a;
其次,你要像你那样遍历的话,除非用一个int指针去遍历,这么做
int a[2][2]={1,2,3,4};
int *pt;
pt = a[0];
int i;
for(i=0;i<=3;i++)
{
printf("%d\n",*(pt+i));
}
否则数组指针的自增是根据你定义的大小来自增的(int (*p)[2],你这里是2)要遍历的话要这样
for(i=0;i<=3;i++)
{
printf("%d\n",*((p[0])+i));
}
int a[2][2]={1,2,3,4};
int (*p)[2];
p=a;
其次,你要像你那样遍历的话,除非用一个int指针去遍历,这么做
int a[2][2]={1,2,3,4};
int *pt;
pt = a[0];
int i;
for(i=0;i<=3;i++)
{
printf("%d\n",*(pt+i));
}
否则数组指针的自增是根据你定义的大小来自增的(int (*p)[2],你这里是2)要遍历的话要这样
for(i=0;i<=3;i++)
{
printf("%d\n",*((p[0])+i));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-08
展开全部
'int' to 'int *'不能把int型转化为int型的指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-08
展开全部
int *temp; 改成int temp;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询