C语言编程出现这个错误了cannot convert from 'int ** ' to 'int *'请问是什么意思啊
答案:3 悬赏:30 手机版
解决时间 2021-02-28 23:57
- 提问者网友:锁深秋
- 2021-02-28 16:49
C语言编程出现这个错误了cannot convert from 'int ** ' to 'int *'请问是什么意思啊
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-02-28 17:42
不能将指向指针的指针当成指针;
你一定是有个地方是
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;
意思就是:一个指针的地址就是指向指针的指针
你一定是有个地方是
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;
意思就是:一个指针的地址就是指向指针的指针
全部回答
- 1楼网友:逃夭
- 2021-02-28 19:17
编译器不能将一个类型为int**的值自动转换为int*的值追问请问
int *p;
p=&p;
为什么指针变量不能用来存储自身的指针呢?追答这与指针变量使用时的解引用有关。
int *p;
p=&p;
为什么指针变量不能用来存储自身的指针呢?追答这与指针变量使用时的解引用有关。
- 2楼网友:骨子里都是戏
- 2021-02-28 18:38
数据类型里,地址和变量之间是不能强制转换的,因为数据根本不在同一个物理层面上。
你的情况也类似,指向指针的指针,不能强制转换为指针,因为他们不在同一个半导体存储的物理层面上。
你的情况也类似,指向指针的指针,不能强制转换为指针,因为他们不在同一个半导体存储的物理层面上。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯