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

做网站字体一般设置/关键词搜索工具好站网

做网站字体一般设置,关键词搜索工具好站网,建筑培训网首页安全员,乐码王国少儿编程加盟前言:C语言中的数组指针和指针数组 数组指针,是指向数组的指针的缩写;指针数组,是存放指针的数组的缩写。其实很多时候,往往因为简写和缩写带给我们很多困惑。我曾想过不用简称去学习,但在很多时候&#xf…

前言:C语言中的数组指针和指针数组

数组指针,是指向数组的指针的缩写;指针数组,是存放指针的数组的缩写。其实很多时候,往往因为简写和缩写带给我们很多困惑。我曾想过不用简称去学习,但在很多时候,我们查询的书籍文档和文章中还是会频频出现这样的简称,所以有必要扣一下字眼了。

1     int *p[3];//[]优先级大于*,所以p是一个数组,数组中存放3个指向int的指针,这也就是指针数组。
2     int (*p1)[3];//先看括号,p1是一个指针,指向一个数组,数组的类型为int,这也就是数组指针。

无论在《c和指针》还是《Effective C++》中,对于这样稍微复杂一点的表达式进行解释的时候,都告诉我们先从变量名开始读,然后看变量名紧跟的运算符的优先级,即可完成解读。那么这和this指针有什么关系呢?关系就在于简称。

引用c++ primer中文版第五版上的原话:常量指针(const pointer)!当我第一次读到这里的时候,就觉得怪怪的,常量指针到底是指向常量的指针还是指针本身是常量?(这一点尤为重要)很明显,根据英文const pointer显示作者想要表达的是这个指针是一个常量,也就是 T * const pointer,作为c语言的后续语言,我想在简称的时候也应该和c保持一致,const pointer简称为指针常量更好,T * const pointer 先找变量名pointer,往左读,const证明是常量,读完表达式,pointer指针是常量,简称指针常量更可取,为什么呢?

数组指针,强调了这是一个指针,指向数组;

指针数组,强调了这是一个数组,数组里面存的指针。

那么同理的话,常量指针,强调这是一个指针,指向常量;

指针常量,强调常量,表示这个指针是常量即const pointer。

当然这是我个人从c过度而来并根据《c和指针》&&《Effective C++》上的习惯,你也可以像书上一样的简称,只要你明白具体的意思。但是最好使用的简称能快速反应出具体事实。就此,我认为该书此处释义有待商榷。

说完前言,回到正题------this指针。

引用c++ primer上的例子:

1  struct Sales_data{
2      std::string isbn() const {return bookNo}
3      ......
4      std::string bookNo;
5  };

isbn函数时如何获得bookNo成员所依赖的对象的呢?

例如我们定义一个:Sales_data   total;

然后 total.isbn();当我们调用成员函数时,实际上是在替某个对象调用它。成员函数通过一个名为this的隐式参数来访问调用它的那个对象。当我们在isbn函数中返回bookNo的时候,其实隐式执行了this->bookNo, 即total.bookNo。this顾名思义,就是“这个”的意思,谁来调用成员函数,this就指向谁的指针。

total.isbn(); 编译器等价地认为:Sales_data:: isbn(&total);编译器负责把total的地址传递给isbn的隐式形参this。在成员函数内部,我们可以直接使用调用该函数的对象的成员,而无需通过成员访问符来做到这一点,因为this正是指向这个对象的。this形参是隐式的,任何自定义名为this的参数或者变量的行为都是非法的。因为this的目的总是指向“这个”对象, 所以this是一个常量指针 (这是书上原话,而经过我刚才的前言,这里改为指针常量更合适) 。 即,this是一个指针常量。这样理解后面的就轻松多了。

在上面的例子中,this的类型是Sales_data * const。尽管this是隐式的,但它也必须遵守初始化规则,默认情况下我们不能把this绑定到一个常量对象上。c++中的做法是把const关键字放在成员函数的参数列表之后,此时紧跟在参数列表后面的const表示this是一个指向常量的指针。这样的函数也叫常量成员函数。即加了const在参数列表之后,this此刻的类型为const Sales_data *const。

到这里,以后自己写成员函数的时候就不会那么模糊了,首先明确this是一个指针,它本身是个常量,要想把一个常量绑定给this,我们需要把这个this指针限定为常量指针(指向常量的指针)。那么,以后自己写成员函数时,就把它当做一个普通指针一样对待,那么,this将不再迷糊。不需要指向常量就不在参数列表后加const,需要就加上const。

NOTE:

即使bookNo定义在isbn之后,isbn还是可以使用bookNo,编译器分两步处理类,首先编译成员的声明,然后才轮到成员函数体(如果有的话)。因此,成员函数体可以随意使用类中的其他成员而无须在意成员出现的次序。

http://www.jmfq.cn/news/5175001.html

相关文章:

  • 做网站用小型机或服务器/长尾关键词是什么
  • 怎么接做网站的任务/查看域名每日ip访问量
  • 网站面试通知表格怎么做/西安网站优化培训
  • 无锡网站建设公司怎么样/怎么免费创建网站
  • 所有免费的网站有哪些/泉州排名推广
  • 做网站的一个月能赚多少钱/公司网站免费建站
  • 做网站 需要什么营业执照/深圳市社会组织总会
  • 互联网金融p2p网站建设模板/关键词优化难度查询
  • 南通网站制作计划/合肥seo推广培训班
  • 推广游戏网站怎么做/品牌推广方案包括哪些
  • 找团队做网站/推广搜索引擎
  • 深圳哪里可以做物流网站/互联网推广
  • 2免费做网站/长沙百度推广排名
  • 装修案例分析/seo专业课程
  • 名师工作室网站建设现状调查/培训计划模板
  • 网站恶意刷/郑州seo课程
  • 教育网站制作服务/广点通广告投放平台
  • 中国第一营销网/seo初学教程
  • 乌鲁木齐网络问政平台/网站优化培训
  • 业务自助下单平台网站/百度seo指南
  • 付网站建设费用 会计科目/台州网站seo
  • 山东泰安区号/快速网站排名优化
  • 如何申请com网站/百度网站排名优化
  • 销售平台网站建设/百度指数关键词搜索趋势
  • 互联网建设企业网站/国内推广平台有哪些
  • 成都网站建设服务/百度云网盘搜索引擎入口
  • 免费网站建设塔山双喜/百度排名
  • 吉林省工程建设标准网站/运营商推广5g技术
  • 广州网站建设出售/百度识图官网
  • 有哪些做鸭子网站/seo推广一年要多少钱