对函数名取地址和函数一样吗

博客指出在C++里函数名本身就是一个地址,并直接展示相关答案,强调这一要点。

答案是一样的

在这里插入图片描述

直接展示答案

在这里插入图片描述

注意: 函数名本身就是一个地址!!!

函数名变量名是否可以相同,取决于具体的编程语言。在不同的编程语言中,对于函数名变量名的命名规则作用域处理方式有所不同,以下是几种常见语言的情况: ### JavaScript 在 JavaScript 中,函数名变量名可以相同,但会存在变量提升覆盖的问题。如果变量有值,那么输出的就是变量的值;如果变量没有值,那么输出的就是这个函数。例如: ```javascript var num; function num(){ console.log("哈哈"); num = 1; } num(); console.log(num); // 输出 1 ``` 当普通函数名匿名函数赋值变量名相同时,会出现一些意外情况,如下面代码会输出 `NaN`: ```javascript var sum = function(a,b){ console.log("进入匿名函数"); return a + b; }; function sum(num){ console.log("进入普通函数"); if(num === 1){ return 1; } return num + sum(num - 1); }; console.log(sum(10)); ``` 以上示例说明 JavaScript 对函数名变量名同名情况有自己的处理机制,开发者需注意避免因同名带来的混淆[^1][^2]。 ### C++C++ 中,变量名字函数名字不能相同。具体原因可参考:http://stackoverflow.com/questions/26218593/why-function-name-can-not-be-same-as-variable-name-in-c [^3]。 ### C 语言 C 语言 C++ 类似,通常不允许函数名变量名相同。因为在编译时,编译器需要根据名称来区分不同的实体,如果名称相同会造成混淆,导致编译错误。 ### Python Python 中函数名变量名可以相同,但不建议这样做。因为 Python 是动态类型语言,变量名可以随时被赋予不同类型的值。若函数名变量名相同,变量赋值操作会覆盖函数定义,后续无法再正常调用该函数。示例如下: ```python def test(): print("这是一个函数") test = 1 # 此时 test 指向整数 1,无法再调用函数 # test() # 这行代码会报错 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值