国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從0開始學(xué)習(xí)C++ 第十二課:指針強化

這篇具有很好參考價值的文章主要介紹了從0開始學(xué)習(xí)C++ 第十二課:指針強化。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

第十二課:指針強化

學(xué)習(xí)目標(biāo):

  • 理解常量指針與指針常量的區(qū)別。
  • 學(xué)習(xí)如何使用函數(shù)指針。
  • 掌握指針與數(shù)組的高級使用技巧。

學(xué)習(xí)內(nèi)容:

  1. 常量指針與指針常量

    • 概念: 常量指針是一個指向常量的指針,這意味著不能通過這個指針來修改其指向的值。指針常量是一個指針,其自身的值不可以修改,但它可以修改其指向的內(nèi)容。
    • 代碼示例:
      #include <iostream>
      
      int main() {
          int value = 10;
          int anotherValue = 20;
      
          // 常量指針
          const int *ptr = &value;
          // ptr = &anotherValue; // 正確,可以改變指針指向
          // *ptr = 15; // 錯誤,不能通過ptr改變value的值
      
          // 指針常量
          int *const ptrConst = &value;
          *ptrConst = 15; // 正確,可以改變value的值
          // ptrConst = &anotherValue; // 錯誤,不能改變指針的指向
      
          std::cout << "Value through constant pointer: " << *ptr << std::endl;
          std::cout << "Value through pointer constant: " << *ptrConst << std::endl;
          
          return 0;
      }
      
    • 預(yù)計輸出效果:
      Value through constant pointer: 10
      Value through pointer constant: 15
      
    • 使用場景: 當(dāng)你想保護(hù)指針指向的數(shù)據(jù)不被修改時使用常量指針,當(dāng)你不想改變指針的指向時使用指針常量。
  2. 函數(shù)指針

    • 概念: 函數(shù)指針是指向函數(shù)的指針,通過這個指針可以調(diào)用不同的函數(shù)。
    • 代碼示例:
      #include <iostream>
      
      void greetEnglish() {
          std::cout << "Hello!" << std::endl;
      }
      
      void greetSpanish() {
          std::cout << "?Hola!" << std::endl;
      }
      
      int main() {
          // 函數(shù)指針
          void (*greet)() = nullptr;
          greet = &greetEnglish; // 指向greetEnglish函數(shù)
          greet(); // 調(diào)用greetEnglish
      
          greet = &greetSpanish; // 指向greetSpanish函數(shù)
          greet(); // 調(diào)用greetSpanish
      
          return 0;
      }
      
    • 預(yù)計輸出效果:
      Hello!
      ?Hola!
      
    • 使用場景: 當(dāng)你需要在運行時調(diào)用不同的函數(shù)時,函數(shù)指針特別有用,例如回調(diào)函數(shù)或事件處理。
  3. 指針與數(shù)組的高級應(yīng)用

    • 概念: 指針可以用來遍歷數(shù)組,通過指針偏移量來訪問數(shù)組元素。
    • 代碼示例:
      #include <iostream>
      
      int main() {
          int numbers[] = {10, 20, 30, 40, 50};
          int *ptr = numbers; // 指向數(shù)組第一個元素
      
          for (int i = 0; i < 5; ++i) {
              std::cout << "Number[" << i << "] = " << *(ptr + i) << std::endl;
          }
      
          return 0;
      }
      
    • 預(yù)計輸出效果:
      Number[0] = 10
      Number[1] = 20
      Number[2] = 30
      Number[3] = 40
      Number[4] = 50
      
    • 使用場景: 當(dāng)需要遍歷數(shù)組或動態(tài)分配的數(shù)組時,指針提供了一種靈活的訪問和操作數(shù)組元素的方式。

練習(xí)題: 編寫一個C++程序,創(chuàng)建一個包含5個整數(shù)的數(shù)組。使用函數(shù)指針指向一個函數(shù),該函數(shù)將數(shù)組作為參數(shù),并返回數(shù)組中的最大值。在main函數(shù)中調(diào)用這個函數(shù),并輸出結(jié)果。

答案:

#include <iostream>

// 函數(shù)原型聲明
int getMax(int*, int);

int main() {
    int arr[] = {3, 1, 4, 1, 5};
    int arraySize = sizeof(arr) / sizeof(arr[0]);

    // 函數(shù)指針聲明
    int (*funcPtr)(int*, int) = nullptr;
    funcPtr = &getMax; // 指向getMax函數(shù)

    // 通過函數(shù)指針調(diào)用getMax
    int max = funcPtr(arr, arraySize);
    std::cout << "The maximum value in the array is: " << max << std::endl;

    return 0;
}

// 定義getMax函數(shù)
int getMax(int* array, int size) {
    int max = array[0];
    for (int i = 1; i < size; ++i) {
        if (array[i] > max) {
            max = array[i];
        }
    }
    return max;
}

預(yù)計輸出效果:

The maximum value in the array is: 5

目錄
第十三課:結(jié)構(gòu)體和聯(lián)合體文章來源地址http://www.zghlxwxcb.cn/news/detail-814131.html

到了這里,關(guān)于從0開始學(xué)習(xí)C++ 第十二課:指針強化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 孩子都能學(xué)會的FPGA:第十二課——利用內(nèi)存產(chǎn)生正弦波

    孩子都能學(xué)會的FPGA:第十二課——利用內(nèi)存產(chǎn)生正弦波

    (原創(chuàng)聲明:該文是 作者的原創(chuàng) ,面向?qū)ο笫?FPGA入門者 ,后續(xù)會有進(jìn)階的高級教程。宗旨是 讓每個想做FPGA的人輕松入門 , 作者不光讓大家知其然,還要讓大家知其所以然 !每個工程作者都搭建了全自動化的仿真環(huán)境,只需要雙擊 top_tb.bat 文件就可以完成整個的仿真(前

    2024年02月03日
    瀏覽(18)
  • 【從零開始學(xué)習(xí)C++ | 第二十二篇】C++新增特性(下)

    【從零開始學(xué)習(xí)C++ | 第二十二篇】C++新增特性(下)

    目錄 前言: 類型推導(dǎo): constexpr: 初始化列表: 基于范圍的for循環(huán): 智能指針之unique ptr Lambda表達(dá)式: 總結(jié): ????????本文我們將繼續(xù)介紹? ?C++ 11 新增十大特性的剩余六個,如果沒有看過介紹前四個特性的小伙伴的可以點進(jìn)我C++的專欄就可以看到。 類型推導(dǎo)(

    2024年02月14日
    瀏覽(20)
  • 《C和指針》讀書筆記(第十二章 使用結(jié)構(gòu)和指針)

    《C和指針》讀書筆記(第十二章 使用結(jié)構(gòu)和指針)

    紙上得來終覺淺,絕知此事要躬行 。前幾章學(xué)習(xí)了結(jié)構(gòu)體、聯(lián)合體和指針的相關(guān)知識。本章就是對這些知識的綜合應(yīng)用。 書中是以 鏈表 作為實例的,嚴(yán)格意義上來說,鏈表屬于 數(shù)據(jù)結(jié)構(gòu)與算法 的相關(guān)內(nèi)容,關(guān)于這方面的知識,想學(xué)習(xí)的同學(xué)推薦《大話數(shù)據(jù)結(jié)構(gòu)》這本書。

    2024年02月12日
    瀏覽(13)
  • 【夜深人靜學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十二篇】動態(tài)規(guī)劃——背包問題

    【夜深人靜學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法 | 第十二篇】動態(tài)規(guī)劃——背包問題

    ? 目錄 ?前言: ?01背包問題: 二維數(shù)組思路: 一維數(shù)組思路: 總結(jié): ? ? ? 在前面我們學(xué)習(xí)動態(tài)規(guī)劃理論知識的時候,我就講過要介紹一下背包問題,那么今天我們就來講解一下背包問題。 在這里我們只介紹 01背包 ,至于分組背包和混合背包這種的已經(jīng)屬于競賽級別的

    2024年02月12日
    瀏覽(19)
  • 【小黑嵌入式系統(tǒng)第十二課】μC/OS-III程序設(shè)計基礎(chǔ)(二)——系統(tǒng)函數(shù)使用場合、時間管理、臨界區(qū)管理、使用規(guī)則、互斥信號量

    【小黑嵌入式系統(tǒng)第十二課】μC/OS-III程序設(shè)計基礎(chǔ)(二)——系統(tǒng)函數(shù)使用場合、時間管理、臨界區(qū)管理、使用規(guī)則、互斥信號量

    上一課: 【小黑嵌入式系統(tǒng)第十一課】μC/OS-III程序設(shè)計基礎(chǔ)(一)——任務(wù)設(shè)計、任務(wù)管理(創(chuàng)建基本狀態(tài)內(nèi)部任務(wù))、任務(wù)調(diào)度、系統(tǒng)函數(shù) 下一課: 【小黑嵌入式系統(tǒng)第十三課】PSoC 5LP第二個實驗——中斷控制實驗 1.1 時間管理 1.1.1 控制任務(wù)的執(zhí)行周期 在任務(wù)函數(shù)的代碼

    2024年02月04日
    瀏覽(19)
  • 【C++】C++入門第二課(函數(shù)重載 | 引用 | 內(nèi)聯(lián)函數(shù) | auto關(guān)鍵字 | 指針空值nullptr)

    【C++】C++入門第二課(函數(shù)重載 | 引用 | 內(nèi)聯(lián)函數(shù) | auto關(guān)鍵字 | 指針空值nullptr)

    目錄 前言 函數(shù)重載 概念 重載函數(shù)的條件 C++支持重載函數(shù)的原理--名字修飾 引用 概念 特性 常引用(const引用) 使用場景 傳值,傳引用效率比較 引用和指針的區(qū)別 內(nèi)聯(lián)函數(shù) 概念 特性 auto(C++11) auto簡介 auto的使用規(guī)則 指針空值nullptr(C++11) C++98中的指針空值 結(jié)語

    2024年04月15日
    瀏覽(21)
  • C++學(xué)習(xí)算法心得和部分算法講解(三指針)

    C++學(xué)習(xí)算法心得和部分算法講解(三指針)

    本文代碼皆是可運行代碼,選用了邏輯和實現(xiàn)最簡單的方式呈現(xiàn),部分代碼帶有注解,可供初學(xué)者學(xué)習(xí)!【點贊+收藏】 目錄 一、三指針: 二、漢諾塔: 三、N皇后問題: 四、熄燈問題: 五、二進(jìn)制密碼鎖 六、快排(模板) 七、歸并排序(模板) 八、逆序?qū)Φ臄?shù)量: 九、

    2024年02月12日
    瀏覽(22)
  • 第十二站(20天):C++泛型編程

    第十二站(20天):C++泛型編程

    C++提供了模板(template)編程的概念。所謂模板,實際上是建立一個通用函數(shù)或類, 其 類內(nèi)部的類型和函數(shù)的形參類型不具體指定 ,用一個虛擬的類型來代表。這種通用的方式稱 為模板。 模板是泛型編程的基礎(chǔ), 泛型編程即以一種獨立于任何特定類型的方式編寫代碼 如: vect

    2024年01月22日
    瀏覽(15)
  • 算法通關(guān)村第十二關(guān)-字符串基礎(chǔ)題目

    思路:遍歷字符串,將第i個字符和第N-i-1個字符串交換即可; 代碼實現(xiàn): 題目:反轉(zhuǎn)字符串2 思路:每2k個一組,將其前k個字符反轉(zhuǎn),使用i+k與字符串長度n判斷剩余字符串長度屬于(0,k)還是 [k,2k)之間;然后按照要求剩余字符串即可; 代碼實現(xiàn): 題目:僅僅反轉(zhuǎn)字母 思

    2024年01月22日
    瀏覽(21)
  • 從零開始學(xué)MATLAB強化學(xué)習(xí)工具箱使用(五):Simulink+強化學(xué)習(xí)設(shè)計器

    從零開始學(xué)MATLAB強化學(xué)習(xí)工具箱使用(五):Simulink+強化學(xué)習(xí)設(shè)計器

    建立Simulink環(huán)境,導(dǎo)入強化學(xué)習(xí)設(shè)計器里,添加代理,進(jìn)行訓(xùn)練 首先準(zhǔn)備好你的Simulink模型,這里還用上節(jié)用到的水箱模型。 RL Agent模塊報錯是由于還沒有給其綁定代理,后續(xù)會在強化學(xué)習(xí)設(shè)計器里配置,暫時不用理會。 下一步,在MATLAB命令行窗口或腳本里為環(huán)境指定狀態(tài)空

    2024年04月09日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包