C语言编程出现这个错误了cannot convert from 'int ** ' to 'int *'请问是什么意思啊
4个回答
展开全部
代码在编译时会出现 error C2664: 'InsertSort' : cannot convert parameter 1 from 'int' to 'int []'
这是因为用数组名做函数实参时,向形参(数组名或指针变量)传递的是数组首元素地址,因此对参数的类型做一下改变,如下图所示:
扩展资料:
C语言函数的实参与形参
1、实际参数(实参)
真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们必须有确定的值,以便把这些值传送给形参。
2、形式参数(形参)
形式参数是指函数名后括号中的变量。因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。
参考资料来源:百度百科--实际参数
展开全部
不能将指向指针的指针当成指针;
你一定是有个地方是
int **a;
函数func(int *p)
你却调用func(a);这样就是将int** 转换为int *,但是严格的编译器就认为这是错的
你一定是有个地方是
int **a;
函数func(int *p)
你却调用func(a);这样就是将int** 转换为int *,但是严格的编译器就认为这是错的
追问
我的代码是这样滴
#include
int main()
{
int *p;
p=&p;
}
没有两个*哦
追答
这样也不对。
你先声明的指向int的指针p是空,然后这个指针应该指向一个int的内存,但是你赋值却是指针的地址(指针的指针);;
你看一下这段代码:
int *p;
int a= 1;
p = &a;
int **pp = &p;
printf("--- %d\n",**pp);
输出是 1;
意思就是:一个指针的地址就是指向指针的指针
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据类型里,地址和变量之间是不能强制转换的,因为数据根本不在同一个物理层面上。
你的情况也类似,指向指针的指针,不能强制转换为指针,因为他们不在同一个半导体存储的物理层面上。
你的情况也类似,指向指针的指针,不能强制转换为指针,因为他们不在同一个半导体存储的物理层面上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-05
展开全部
编译器不能将一个类型为int**的值自动转换为int*的值
追问
请问
int *p;
p=&p;
为什么指针变量不能用来存储自身的指针呢?
追答
这与指针变量使用时的解引用有关。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询