数组名和函数名是指针?指针和引用底层一样?

news2024/9/25 7:19:38

在2023/8/26日晚上,我看到一个所谓“典”的视频,一开始还没太在意,后面想了想发现我貌似也一直犯了以下的错误,而错误的原因在于我在新手阶段学习C/C++并不是查阅文档扎好脚步学习的,而是被铺天盖地的新手学习基础教程里学习的,导致一些对语言的误解越来越深。

1.数组名和函数名是指针?

原视频在b站:数组名是指针?典。

以下是我的个人理解:

  1. 数组名就是数组的名,不是指针,具有数组类型,因此取地址得到整数组地址,sizeof(数组名)就是得到整个数组大小

  2. 在使用数组名的时候(例如arr+1)会发生隐式转化,转化后的类型的确为指针

  3. 函数名也确实是函数名,不是指针,关联一个函数类型,因此取地址得到函数地址,sizeof()没有办法求出(因为sizeof()在编译时确定,而函数栈帧在运行时确定,此时才会给函数分配空间,没有办法给出具体的大小)

  4. 在使用函数名的时候(例如f+1)会发生隐式类型转化,转化后的类型的确为指针

在这里插入图片描述

2.指针和引用底层一样?

有一种说法就是:在汇编层面指针和引用是一样,但是这种说法已经脱离了C/C++语言本身,我在视频的下方有看到一条评论是这样的,我也认为这说得确实比较恰当:

古明地现:“不管存储的数据是什么数据类型,int也好,char也罢,到最后都会变成内存中具体的值,也就是说,高级语言编译后会丢失原有的很多信息。所以仅仅通过分析产们生成的汇编码来判断高级语言中它们的意义是否相同,这样的做法是十分不妥当的。比如unsigned int a = 40;short b = 40;过汇编后内存地址内的数据都是一样的,汇编指令也是一样的。但是这不能证明高级语言层面的ab完全等价,更不能训明shortunsined int是同一种数据类型,简简单单看看汇编码就说某些东西一样的人,只能说他们想的太简单了。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/935229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图书管理系统Java书店进销存jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 图书管理系统 系统有1权限:管理员 用所技…

5.网络原理之初识

文章目录 1.网络发展史1.1独立模式1.2网络互连1.3局域网LAN1.3.1基于网线直连1.3.2基于集线器组建1.3.3基于交换机组建1.3.4基于交换机和路由器组建1.3.4.1路由器和交换机区别 1.4广域网WAN 2.网络通信基础2.1IP地址2.2端口号2.3认识协议2.4五元组2.5 协议分层2.5.1 分层的作用…

weak_ptr是怎么探知对象生死的

weak_ptr是C智能指针中的一种。它用于解决共享所有权的问题,并且可以避免因循环引用而导致的内存泄漏。 weak_ptr本身并不承担对象的所有权,它指向由shared_ptr管理的对象。与shared_ptr不同,weak_ptr并不会增加计数器来计算对象的引用次数。…

【30天熟悉Go语言】11 数组的全方位使用与解析

作者:秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。 源码系列专栏:Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign&…

工厂机械臂人员闯入自动预警

工厂机械臂人员闯入自动预警系统通过yolov8系列网络模型深度学习算法,工厂机械臂人员闯入自动预警算法实时监测工作区域内的人员位置和机械臂设备的运行状态,实现对人员闯入的识别和预警。一旦系统检测到人员闯入作业区域,立即发出警报并同步…

java八股文面试[多线程]——什么是线程安全

对线程安全的理解 总结:一个进程内的多个线程同时访问堆内存。 知识来源: 【并发与线程】对线程安全的理解_哔哩哔哩_bilibili

Linux 多线程基础

文章目录 前言一、多线程基础函数1. pthread_create2. pthread_self3. pthread_exit4. pthread_join5. pthread_cancel6. pthread_detach 二、线程间的共享数据三、多线程 &#xff0c;进程对比总结 前言 一、多线程基础函数 1. pthread_create 创建新的线程。 #include <…

第二章 Linux基础命令

目录 一、 Linux的目录结构  1.学习目标  2.Linux的目录结构  3.Linux路径的描述方式  4.本小节的总结  5.课后练习 二、 Linux命令入门  2.1 Linux命令基础  1.学习目标  2.什么是命令、命令行  3.Linux命令基础格式  4.本小节的总结 2.2 ls命令入门  1…

KMP算法开荒

文章目录 一 、前言二、 暴力解法三、KMP算法原理3.1 自动子串的指针3.2 跳过多少个字符3.3 next数组 - 暴力3.4 next数组 - 求解 四 KMP实现 一 、前言 字符串匹配 import re print(re.search(www, www.runoob.com).span()) # 在起始位置匹配 print(re.search(com, www.run…

Java“牵手”天猫商品sku信息API接口数据,天猫API接口申请指南

天猫平台商品sku属性信息接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品销量接口API是一种用于获取电商平台上商品sku属性数据的接口&#…

无涯教程-KNN算法 - 寻找最近邻居

K最近邻(KNN)算法是一种监督的ML算法&#xff0c;可用于分类以及回归预测问题&#xff0c;但是&#xff0c;它主要用于行业中的分类预测问题。以下两个属性将很好地定义KNN- 惰性学习算法 - KNN是一种惰性学习算法&#xff0c;因为它没有专门的训练阶段&#xff0c;并且在分…

Java-继承和多态(下)

补全构造方法 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);while (scanner.hasNextInt()) {int x scanner.nextInt();int y scanner.nextInt();int z scanner.nextInt();Sub sub new…

【Python】基于Python的电话簿(Phonebook project)设计【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

使用Rust开发命令行工具

生成二进制文件&#xff0c;将其扔到环境变量的path下即可~ 用rust打造实时天气命令行工具[1] 找到合适的API 使用该api[2] 如请求 api.openweathermap.org/data/2.5/weather?qBeijing&appidyour_key: { "coord": { "lon": 116.3972, "lat&quo…

变天了,国产技术突破让黑黄金变成白菜价,芯片技术变革时代来了

由于众所周知的原因&#xff0c;美国企图利用它掌握的硅基芯片技术体系&#xff0c;阻止中国发展先进芯片&#xff0c;不过中国科技界在一项重要芯片材料方面已取得重大突破&#xff0c;还让这种芯片材料变成白菜价&#xff0c;将改变硅基芯片技术主导的时代。 这种芯片材料就是…

小研究 - JVM 的类装载机制

本文通过对一个类装载实例的分析&#xff0c;阐明了 Java虚拟机的类装载的代理机制和由此定义的命名空间&#xff0c;指出了类装载机制在容器/组件/抽象框架结构中的作用。 目录 1 引言 2 实例 3 分析 3.1 类装载的代理机制 3.2 Java的命名空间 3.3 解决问题 4 应…

全栈之前端 | 1.CSS3必备基础知识学习

关注回复【学习交流群】加入【安全开发运维】答疑交流群 请朋友们【多多点击文中的广告】&#xff0c;支持作者更新更多文章。 目录: 0x00 前言简述 描述: 前面跟随着WeiyiGeeker作者【全栈工程师修炼指南】公众号一起学习了前端基础的知识以及HTML标签、属性、事件、字符集系列…

寻找注册配置中心最佳评测官,赢取丰厚奖品 | 测评开启,开发者请速速集结

评测前请点击文末链接&#xff0c;领取 MSE-Nacos 免费试用&#xff0c;再启动评测。 注册配置中心 MSE-Nacos (以下简称 MSE-Nacos)&#xff0c;即 Nacos 的企业版&#xff0c;开箱即用的 Nacos 云服务&#xff0c;对 Nacos 内核进行企业级稳定性加固&#xff0c;故障自动检测…

统计学补充概念-13-逻辑回归

概念 逻辑回归&#xff08;Logistic Regression&#xff09;实际上是一种用于解决分类问题的统计学习方法&#xff0c;尽管其名称中带有"回归"一词&#xff0c;但它主要用于处理分类任务。逻辑回归用于预测一个事件发生的概率&#xff0c;并将其映射到一个特定的输出…

js的this指向问题

代码一&#xff1a; 这段代码定义了run函数、obj对象&#xff0c;然后我们把run函数作为obj的方法。 function run(){console.log(this);}let obj{a:1,b:2};obj.runrun;obj.run(); 那么我们调用obj的run方法&#xff0c;那么这个方法打印的this指向obj。 分析&#xff1a;即…