1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      C語言中auto怎么用

      這篇文章主要為大家展示了“C語言中auto怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C語言中auto怎么用”這篇文章吧。

      創(chuàng)新互聯(lián)建站主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)龍南,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

      你以為我說的自動(dòng)變量類型auto嗎?非也,我們知道C語言中其實(shí)也有auto關(guān)鍵字,它和早期C++中的auto關(guān)鍵字一樣,它修飾局部變量,表示自動(dòng)存儲(chǔ)期,不過由于默認(rèn)就是這種,因此我們其實(shí)常常見不到這樣的寫法:

      auto int a =10;

      本文要介紹的并不是上面的auto,而是C++11中引入的auto關(guān)鍵字。

      C語言中auto怎么用

      效果

      看看下面的代碼:

      #include#include int main() {     std::vector vec{1,2,3,4,5};     for(std::vector::const_iterator it = vec.begin();it != vec.end();++it)     {         std::cout<<*it<

      對(duì)于it的類型,你自己能快速寫出來嗎?我反正是寫不出來。

      再看auto版本:

      #include #include int main() {     std::vector vec{1,2,3,4,5};     for(auto it = vec.begin();it != vec.end();++it)     {         std::cout<<*it<

      是不是簡(jiǎn)潔了許多?

      沒錯(cuò),今天就是介紹自動(dòng)類型推導(dǎo)關(guān)鍵字auto。

      auto的作用

      說實(shí)在的,程序員有時(shí)候就是“懶”,可能連個(gè)表達(dá)式的類型都不想寫,auto就是這樣一個(gè)關(guān)鍵字,它讓編譯器替我們?nèi)シ治霰磉_(dá)式的類型。

      當(dāng)然了,分析的前提是auto定義的變量有初值,如果連值都沒有,怎么可能知道它是什么類型?

      auto用法

      (1) 普通類型推導(dǎo)

      例如:

      auto i = 10;//i為int類型 auto d = 10.2//d 為double類型 auto f = 10.2f//f為float類型

      (2) const關(guān)鍵字修飾的類型推導(dǎo)

      通常auto會(huì)忽略掉頂層const(本身是常量,如int *cosnt p),而會(huì)保留底層const(指向的對(duì)象是常量,如const int*  p)。

      舉個(gè)例子頂層const的例子:

      const int ci = 10; auto aci = ci;//忽略頂層const,推導(dǎo)ci是int,所以aci類型是int const auto ca = ci//推導(dǎo)ci是int,但是前面有const,所以ca是const int

      再說一個(gè)底層const的例子:

      const int arr[] = {11}; auto p = arr;//arr 是const int *,這是底層const,推導(dǎo)后,保留底層const,所以p是 const int*

      arr數(shù)組名被當(dāng)成指針是,是const int*類型,或者說是int  const*,它指向的對(duì)象是只讀的,因此是底層const,保留,最終p的類型也是int const *。

      當(dāng)然auto還可以設(shè)置引用類型,例如:

      const int ci = 10; auto &cp = ci;//cp是一個(gè)整型常量引

      如果是字面值,則必須加上const:

      const auto &ref = 10;//10是字面值,常量引用才能綁定字面值

      想一想

      想想下面推導(dǎo)的size類型是什么?

      std::vector vec; auto size = vec.size();

      沒錯(cuò),它是std::vector::size_type。

      要你寫下來你肯定不愿意。

      不過下面這樣是沒法推導(dǎo)的奧:

      vector aa;    //vector bb = aa;//無法推導(dǎo)出模板類型

      下面這段程序幫你查看真正類型的名稱,僅供參考:

      #include #include  #include  #include  int main() {     int     status;     char   *realname;     auto type = 1.1;     realname = abi::__cxa_demangle(typeid(type).name(), 0, 0, &status);     std::cout << typeid(type).name() << " => " << realname <

      輸出結(jié)果:

      double

      總結(jié)

      乍一看,好像挺簡(jiǎn)單的那么一回事,不過使用auto最好注意類型推導(dǎo)規(guī)則,不是很明確的規(guī)則不建議以代碼可讀性為代價(jià)而簡(jiǎn)化代碼。

      當(dāng)然了,它也有以下特點(diǎn):

      • 可能使得代碼可讀性差

      • 某些情況auto得到的類型可能不是你想要的

      因此一定要合理使用。

      以上是“C語言中auto怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      新聞名稱:C語言中auto怎么用
      URL地址:http://ef60e0e.cn/article/phogpp.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        色达县| 宣汉县| 巴塘县| 吉水县| 梅州市| 滨海县| 乌苏市| 当雄县| 惠州市| 高阳县| 视频| 北票市| 喀喇沁旗| 新干县| 修文县| 霍林郭勒市| 陆良县| 扶沟县| 新巴尔虎左旗| 石屏县| 信丰县| 松滋市| 绥滨县| 宜阳县| 浮梁县| 金湖县| 宣威市| 商河县| 山丹县| 北海市| 绍兴市| 微博| 钟祥市| 新建县| 汝阳县| 尤溪县| 衡阳县| 繁峙县| 诏安县| 调兵山市| 金塔县|