C++ 错误 Invalid Conversion of Int* to Int
这个简短的教程将讨论错误消息 Invalid conversation of int* to int
。 首先,让我们回顾一下 C++ 中的指针。
C++ 中的指针预备知识
指针用于保存变量的地址(十六进制值),并使用与号(&
)(也称为变量名前面的地址运算符)将其分配给指针类型变量。
指针使用 *
符号声明,如下所示:
DataType *p;
我们可以使用以下语句将整型变量的地址分配给整型指针:
int* p= &a;
上面这行代码将整型变量a的地址赋给整型指针p。
转换错误
当整型变量被赋予变量的十六进制地址值而不是整数类型值时,会出现“invalid conversion from int to int*”错误。
示例代码:
#include <iostream>
using namespace std;
int main()
{
int a=10;
int p;
p=&a; // invalid conversion error
cout<< p;
}
上面的代码将在第 07 行生成转换错误,因为 p 被分配了一个 int*
类型的地址,该地址无法存储在整数变量中。
输出:
main.cpp: In function 'int main()': main.cpp:7:7: error: invalid conversion from 'int*' to 'int' [-fpermissive] ptr = &p; //invalid conversion. ^
解决转换错误
大多数编译器不允许从指针类型到简单数据类型的类型转换。 因此,可以通过确保将地址类型值分配给正确的指针变量来解决该问题。
示例代码:
#include <iostream>
using namespace std;
int main()
{
int a=10;
int* p;
p=&a;
cout<< p;
}
声明 p 时的 *
符号将使其成为指向整数的指针。 从而使其能够存储整数变量的地址,而不需要任何类型转换。
相关文章
C++ 中的错误 Solved: Expression Must Have Class Type
发布时间:2023/08/21 浏览次数:62 分类:C++
-
让我们看看为什么会发生这种情况以及如何解决。C++ 中错误 Solved: Expression Must Have Class Type 为了更好地理解问题陈述,请查看下面的代码。 在这里,我们有一个名为 Deserts 的类,其中包含函数
C++ 中的取消引用指针
发布时间:2023/08/20 浏览次数:139 分类:C++
-
本文简要讨论 C++ 中取消引用指针。在进入我们的实际主题之前,我们首先需要了解指针是什么以及为什么 C++ 程序员需要它。
C++ 中 *& 和 **& 的功能和区别
发布时间:2023/08/20 浏览次数:194 分类:C++
-
本文解释了 C++ 中 *& 和 **& 的区别和功能。 要理解这些符号,需要熟悉C++中指针的概念。C++ 中 *& 和 **& 的功能和区别
在 C++ 中使用指针交换两个数字
发布时间:2023/08/20 浏览次数:130 分类:C++
-
指针是 C++ 编程语言中的一个基本概念。 它们用于访问和操作计算机的内存。它们可以指向任何数据类型,包括数组、结构或函数。 指针是 C++ 中最强大的工具之一,因为它们允许程序员在运行
C++ 中 unique_ptr 的声明和使用
发布时间:2023/08/20 浏览次数:89 分类:C++
-
指针在 C++ 中有许多有用的用途。 从节省程序空间到帮助实现数据结构,指针对于 C 和 C++ 等编程语言来说是非常重要的工具。本文将讨论这样一种指针的概念,即唯一指针。 C++标准库提供了该
C++ 中的悬空指针
发布时间:2023/08/20 浏览次数:200 分类:C++
-
本文将讨论什么是悬空指针。C++ 中的悬空指针 悬空指针是指向不再存在的对象的指针(引用)。 当对象被删除时,指针指向它原来所在的内存地址。