安徽旅游在线网站建设,生活+装修 北京卫视,erp软件有哪些软件,天眼查企业查询赵宝荣在2023/8/26日晚上#xff0c;我看到一个所谓“典”的视频#xff0c;一开始还没太在意#xff0c;后面想了想发现我貌似也一直犯了以下的错误#xff0c;而错误的原因在于我在新手阶段学习C/C并不是查阅文档扎好脚步学习的#xff0c;而是被铺天盖地的新手学习基础教程里…在2023/8/26日晚上我看到一个所谓“典”的视频一开始还没太在意后面想了想发现我貌似也一直犯了以下的错误而错误的原因在于我在新手阶段学习C/C并不是查阅文档扎好脚步学习的而是被铺天盖地的新手学习基础教程里学习的导致一些对语言的误解越来越深。
1.数组名和函数名是指针
原视频在b站数组名是指针典。
以下是我的个人理解 数组名就是数组的名不是指针具有数组类型因此取地址得到整数组地址sizeof(数组名)就是得到整个数组大小 在使用数组名的时候例如arr1会发生隐式转化转化后的类型的确为指针 函数名也确实是函数名不是指针关联一个函数类型因此取地址得到函数地址sizeof()没有办法求出因为sizeof()在编译时确定而函数栈帧在运行时确定此时才会给函数分配空间没有办法给出具体的大小 在使用函数名的时候例如f1会发生隐式类型转化转化后的类型的确为指针 2.指针和引用底层一样
有一种说法就是在汇编层面指针和引用是一样但是这种说法已经脱离了C/C语言本身我在视频的下方有看到一条评论是这样的我也认为这说得确实比较恰当 古明地现“不管存储的数据是什么数据类型int也好char也罢到最后都会变成内存中具体的值也就是说高级语言编译后会丢失原有的很多信息。所以仅仅通过分析产们生成的汇编码来判断高级语言中它们的意义是否相同这样的做法是十分不妥当的。比如unsigned int a 40;short b 40;过汇编后内存地址内的数据都是一样的汇编指令也是一样的。但是这不能证明高级语言层面的a和b完全等价更不能训明short和unsined int是同一种数据类型简简单单看看汇编码就说某些东西一样的人只能说他们想的太简单了。”