当前位置: 首页 > news >正文

马鞍山做网站公司网络营销推广与策划实训总结

马鞍山做网站公司,网络营销推广与策划实训总结,网站的色调,南通旅游网站建设很多编程语言都以 “没有指针” 作为自己的优势来宣传#xff0c;然而#xff0c;对于C语言#xff0c;指针却是与生俱来的。那么#xff0c;什么是指针#xff0c;为什么大家都想避开指针。很简单#xff0c; 指针就是地址#xff0c;当一个地址作为一个变量存在时然而对于C语言指针却是与生俱来的。那么什么是指针为什么大家都想避开指针。很简单 指针就是地址当一个地址作为一个变量存在时它就被叫做指针该变量的类型自然就是指针类型。指针的作用就是给出一个指针取出该指针指向地址处的值。为了理解本质我们从计算机模型说起。宏观看来计算机可以分为两类存储-执行计算机。这类机器典型的例子就是我们平时使用的计算机有一个CPU有一个内存CPU仅包含运算逻辑所有的指令和数据都在内存中内存仅供存储不包含任何运算组件。现场编程计算机。这类机器的典型例子就是ASCI电路FPGA这种。直接针对特定的需求构建逻辑电路然而由于存在笛卡尔积的问题不太适合通用计算。我们看我们平时使用的存储-执行模型的计算机工作模式CPU在地址总线上发射一个地址到内存。内存把特定地址对应的数据返回到数据总线。看起来通用计算机就是通过指针完成所有工作的。CPU没有能力直接操作内存里的值它必须做以下的操作以迂回从特定地址A0取出值V0。对V0进行加工运算生成V1。将V1存入特定地址A1。太初人们就是按照以上的这么个逻辑编程的这就是汇编语言mov    -0x4c(%rbp),%ebx然而这样太麻烦了C语言随着简单通用的UNIX操作系统而生下面的语句看起来更加方便int a 10;char *p a;*p 13;C语言直接映射了CPU的工作方式而且是用极其简单的方式这就是C语言的艺术。这就是C指针的背景。在那个年代人们还没有渴望计算机帮助完成更复杂的业务逻辑人们只是希望用一种更加简单的方式抽象出计算机的行为最终的结晶就是C语言。于是我们说C语言的精华就是指针指针是C语言的一切。我们可以没有if-else语言我们可以没有switch-case语句我们可以不要while我们不要for但我们必须有指针。是的我们可以用指针函数的状态矩阵代替if-else之类int (*routine)[...]();...condition calc(...);routine[condition](argv);我们用状态矩阵成功规避了if-else…可以看到还是用的指针。…指针是存储-执行模型的计算机工作的必要条件我们再看存储-执行模型的计算机的工作方式给定一个地址CPU就可以取出该地址的数据。给定一个地址CPU就可以写入该地址一个值。这意味着什么只要想让CPU正常工作就必须暴露整个内存地址空间给CPU否则CPU就是一堆毫无用处的门电路换句话说 一切来自内存操作内存就必然要用指针其实C语言就是简化版的汇编语言。最终C语言接力汇编用指针创造了世界。不管怎么样C语言是面向计算机的编程语言而不是面向业务的编程语言它映射了计算机的工作方式而不太善于描述业务逻辑因此C语言深受黑客编程手艺人这种计算机本身的爱好者喜爱却不被业务程序员待见因为摆弄指针确实太繁琐复杂了一不小心就会出错。存储-执行模型的问题在于要设计复杂的带外机制防止内存被任意访问由此而来的就是复杂的分段分页访问控制MMU等机制当然这些机制和CPU依靠指针访问内存的工作方式并不冲突。把C语言指针用的最绝的应该就是Linux内核的嵌入式链表 struct list_head 了struct list_head {struct list_head *next, *prev;};它可以代表一切它通过C指针完美诠释了OODlist_head是世界的基类通过container_of宏list_head可以转换为任意对象/** * container_of - cast a member of a structure out to the containing structure * ptr:        the pointer to the member. * type:       the type of the container struct this is embedded in. * member:     the name of the member within the struct. * */#define container_of(ptr, type, member) ({                              \        void *__mptr (void *)(ptr);                                   \        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)-member)    \                         !__same_type(*(ptr), void),                    \                         pointer type mismatch in container_of());    \        ((type *)(__mptr - offsetof(type, member))); })这个转换背后的依赖正是指针然而C语言依然对业务编程不友好前面说了C语言映射的就是计算机工作方式本身若想用好C语言就必须要懂计算机原理这并不是业务程序员的菜业务程序员只是编写业务逻辑并不在乎计算机是如何工作的。曾经计算机还是一群痴迷于技术本身的极客们的玩具计算机是属于他们的他们用C编程用Perl/Python/Bash粘合二进制程序。进入互联网时代随着越来越复杂的业务逻辑出现越来越多的职业程序员开始成了多数派他们开始使用更加业务友好的语言JavaGo便成功了。不能说这些业务编程语言没有指针只是它们隐藏了指针而已它们对程序员暴露了更加对业务友好的编程接口和语法自己在底层处理指针问题仅此而已。指针是客观存在的只要你使用的是存储-执行模型的计算机指针就是一切。原文链接https://blog.csdn.net/dog250/article/details/103221309
http://wiki.neutronadmin.com/news/366030/

相关文章:

  • 张家港网站建设免费建设网站设计页面
  • 电子商务网站设计与开发案例教程长沙专业网站建设公司哪家好
  • 定制网站建设开发维护怎么申请网站空间域名
  • 网站外链发布平台WordPress打开数据库
  • 哪些网站可以上传自己做的视频手机wap版
  • 上海网站制作是什么网站图片相册代码
  • 广告型网站建设网站集成微信登陆
  • 网站如何做线上支付功能劳务派遣
  • 济南教育平台网站建设有什么正规的网站做代加工
  • 网站制作教程ppt公司想建一个网站找谁做
  • 商丘网站seo郴州建设网站的公司
  • 网站设计深圳市北京电力建设公司培训学校网站
  • 做彩票网站电话多少钱博物馆网站建设说明
  • 南京seo建站世界500强最新排名
  • 建设检测人员证书查询网站域名估价哪个网站准确
  • asp动态链接生成网站地图免费在线制作网页
  • 东营网站seo顾问wordpress培训模板下载
  • 描述建设网站的一个具体步骤给公司创建网站流程
  • 51单片机可以做网站快递系统查询网站怎么做
  • 苏州虎丘区建设局网站WordPress如何建小语种网站
  • 网站开发流程主要分成什么网页制作论坛
  • 公司支付网站建设费进什么费用企业老板培训课程
  • 沈阳市工伤网站做实东莞网站网络推广
  • 网站的构架与组成黄石网站建设教程
  • 网站建设的信息安全防范技术元搜索引擎有哪些
  • 罗永浩做的网站网站用户注册增加办法
  • 网站建设自助建站制作自适应网站内容区做多大合适
  • 学校网站制作html秦皇岛网站建设seo
  • 山东省水利建设市场信用信息平台网站遵义哪里有做网站的
  • 北京知名网站建设公司wordpress 重复内容