当前位置: 首页 > 知识库问答 >
问题:

int(*)(int*)=5(或任何整数值)的含义

江棋
2023-03-14
int main() {
    int (*) (int *) = 5;
    return 0;
}
int * (*) (int *) = my_ptr

那么作业是什么意思呢?

更新1

我们已经确认这是一个bug,如最佳答案所示。但是,仍然不知道赋给函数指针的值实际上会发生什么,或者赋值会发生什么。任何(好的)解释将非常感谢!请参阅下面的编辑,以便更清楚地了解这个问题。

有趣的是,使它成为指向任何返回非指针数据类型的函数的函数指针,将允许它进行编译,如

std::string (*) () = 5.6;

但是,一旦函数指针指向返回某个指针的函数,它就不会编译,例如

some_data_type ** (*) () = any_value;

共有1个答案

酆茂才
2023-03-14

这是G++中的一个bug。

 int (*) (int *) 

是类型名称。

在C++中,不能使用没有标识符的类型名声明。

 int (*) (int *) = 5;
 int (*) (int *);

当上面的两个声明位于文件范围内时,G++正确地发出诊断(在块范围内发出诊断失败)。

编辑3:

我检查过了,我可以在最新的G++版本4(4.9.2)、最新的预发布版本5(5.0.1 201 50412)和最新的实验版本6(6.0 201 50412)上复制这个问题。

 类似资料:
  • 问题内容: 如何在Java中增加Integer的值?我知道我可以使用intValue获取值,也可以使用新的Integer(int i)进行设置。 似乎不起作用。 注意:PlayerID是使用以下内容创建的整数: 问题答案: 对象是不可变的,因此一旦创建它们就无法修改该值。您将需要创建一个新的并替换现有的。

  • 问题内容: 我想知道我是否使用值为8的INT,这是否意味着我只能从1到99999999或从1到4294967295 UNSIGNED? 问题答案: 该文档对此似乎很清楚: 数值类型属性 MySQL支持扩展,可以选择在整数类型的基本关键字之后的括号中指定整数数据类型的显示宽度。例如,INT(4)指定显示宽度为四位数的INT。应用程序可以使用此可选的显示宽度来显示整数值,该整数值的宽度小于为列指定的宽

  • 问题内容: 如何查询列中的任何值?(即,我如何构建一个动态的where子句,该子句可以过滤值,也可以不过滤值。) 我希望能够查询一个特定的值或没有。例如,我可能希望该值为1,但我可能希望其为任何数字。 有没有一种方法可以使用通配符(例如“ *”)来匹配任何值,以便可以将其动态插入到我不需要过滤器的地方? 例如: 我不想使用2条单独的SQL语句的原因是因为我将其用作SQL数据源,它只能有1条sele

  • 主要内容:关于 Python 2.x,整数的不同进制,数字分隔符整数就是没有小数部分的数字, Python 中的整数包括正整数、0 和负整数。 有些强类型的编程语言会提供多种整数类型,每种类型的长度都不同,能容纳的整数的大小也不同,开发者要根据实际数字的大小选用不同的类型。例如C语言提供了 short、int、long、long long 四种类型的整数,它们的长度依次递增,初学者在选择整数类型时往往比较迷惑,有时候还会导致数值溢出。 而 Python 则不同

  • 2.2.1 整数类型 int 整数就是没有小数部分的数值,分为正整数、0 和负整数。Python 语言提供了类型 int 用于表示现实世界中的整数信息,如班级里的人数、人的年龄、乒乓球比赛每方的得分等等。 基本数据类型的值都可通过字面值(literal)的形式表示出来,即以字面形式表现值。 整数类型的字面值表示形式和我们在现实世界中的写法一样,例如下列都是合法的整数: 123 -456 0 注意

  • 问题内容: 我有一个容器。 假设 为什么我这样做是假的? 我认为是由于相同的原因,但我应该得到这个错误吗? 我可以以某种方式纠正它吗? TL; DR:我可以将Arraylist.contains()用于int [] 编辑: 解答(如果将来有人在此进行搜索,这是我作为解决方案编写的比较代码): 问题答案: 数组列表仅存储对数组的引用,而不存储其内容,因此只能说列表是否包含对您输入的数组的确切引用。它