最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言修煉之路悟徹數(shù)組真妙理?巧用下標破萬敵下篇

 更新時間:2022年02月26日 15:49:58   作者:玄澈_  
在C語言和C++等語言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來指向若干個字符串,使字符串處理更加方便、靈活

(壹)冒泡排序

1.1冒泡排序的設計

冒泡排序(Bubble Sort)也是一種簡單直觀的排序算法。它重復地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢"浮"到數(shù)列的頂端。

1.2冒泡排序的步驟

  • 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  • 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。這步做完后,最后的元素會是最大的數(shù)。
  • 針對所有的元素重復以上的步驟,除了最后一個。
  • 持續(xù)每次對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。

??動圖演示1(數(shù)據(jù)較?。?/p>

??動圖演示2(數(shù)據(jù)較大)

1.3冒泡排序的實現(xiàn)

Tips:每一趟冒泡排序后都會減少一個需要比較的數(shù) -->  因為每一趟的冒泡排序都會將所比較的最大/最小值移動到數(shù)組的最后面

(貳)數(shù)組作為函數(shù)參數(shù)

往往我們在寫代碼的時候,會將數(shù)組作為參數(shù)傳個函數(shù),比如:我要實現(xiàn)一個冒泡排序(這里要講算法思想)函數(shù)將一個整形數(shù)組排序。 那我們將會這樣使用該函數(shù):

2.1冒泡排序函數(shù)的錯誤設計

接下來看一個例子

最后結果:

并沒有預料中的達到排序的作用

在我們之前的學習中,我們知道了 數(shù)組名表示的數(shù)組首元素的地址 

數(shù)組名在傳遞給函數(shù)的時候,會降級變成首元素的地址

數(shù)組名單獨放在sizeof內(nèi)部的時候 ,如:sizeof(arr),這里的arr表示整個數(shù)組而不是首元素的地址

對數(shù)組名進行&取地址后的操作

我們知道,對指向數(shù)組元素的指針進行自增運算是跳過一個元素(所占字節(jié)數(shù)的地址),其實本質是跳過一個其指針類型大小。對數(shù)組名進行取地址后獲得的是數(shù)組的地址,如果將它和數(shù)組首元素地址以及數(shù)組名打印出來,會發(fā)現(xiàn)它們的值是一樣的。但如果對&arr進行+1等操作,就會發(fā)現(xiàn)跳過的不是一個元素的大小,而是一個數(shù)組的大小。

2.2冒泡排序函數(shù)的正確設計

當數(shù)組傳參的時候,實際上只是把數(shù)組的首元素的地址傳遞過去了。所以即使在函數(shù)參數(shù)部分寫成數(shù)組的形式:int arr[]表示的依然是一個指針:int *arr。那么,函數(shù)內(nèi)部的sizeof(arr)結果是4。

(叁)對數(shù)組名的拓展解析

數(shù)組名就是首元素的地址,但是有兩個例外

  • sizeof(數(shù)組名),這里的數(shù)組名表示整個數(shù)組,sizeof(數(shù)組名)表示的是整個數(shù)組的大小
  • &數(shù)組名,這里的數(shù)組名表示的是整個數(shù)組,取出的是整個數(shù)組的地址

 &arr取出的是整個數(shù)組的地址,所以 arr + 1后跳過了整個數(shù)組的大小為 

4 * 10 = 40 個字節(jié)的地址大小

C游記之旅至此,大家也掌握了一定的技能,推薦大家可以跟著下面這篇文章,去實現(xiàn)一個屬于自己的三子棋游戲哦 

【入門級C語言小游戲】——“三子棋” 

到此這篇關于C語言修煉之路悟徹數(shù)組真妙理 巧用下標破萬敵下篇的文章就介紹到這了,更多相關C語言 數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 聊一聊C++虛函數(shù)表的問題

    聊一聊C++虛函數(shù)表的問題

    C++是面向對象的語言(與C語言主要區(qū)別),所以C++也擁有多態(tài)的特性。下面通過代碼看下C++虛函數(shù)表的問題,感興趣的朋友一起看看吧
    2021-10-10
  • C 語言基礎教程(一)顏色加亮

    C 語言基礎教程(一)顏色加亮

    C 語言基礎教程(一)顏色加亮...
    2007-02-02
  • C語言實戰(zhàn)之浪漫煙花表白程序代碼

    C語言實戰(zhàn)之浪漫煙花表白程序代碼

    這篇文章主要介紹了C語言實戰(zhàn)之浪漫煙花表白程序代碼,需要的朋友可以參考下
    2021-04-04
  • MATLAB中count函數(shù)用法示例代碼

    MATLAB中count函數(shù)用法示例代碼

    這篇文章主要介紹了MATLAB中的count函數(shù),用于計算字符串中模式的出現(xiàn)次數(shù),它可以處理單個模式和模式數(shù)組,并且可以忽略大小寫,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • 詳解C語言結構體中的char數(shù)組如何賦值

    詳解C語言結構體中的char數(shù)組如何賦值

    這篇文章主要給大家介紹了關于C語言結構體中的char數(shù)組如何賦值的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • C++數(shù)據(jù)結構之list詳解

    C++數(shù)據(jù)結構之list詳解

    list是一種序列式容器。list容器完成的功能實際上和數(shù)據(jù)結構中的雙向鏈表是極其相似的,list中的數(shù)據(jù)元素是通過鏈表指針串連成邏輯意義上的線性表,也就是list也具有鏈表的主要優(yōu)點,即:在鏈表的任一位置進行元素的插入、刪除操作都是快速的
    2021-11-11
  • 簡單的漢諾塔問題解法代碼

    簡單的漢諾塔問題解法代碼

    漢諾塔本是C語言開門就學的東西,簡單的漢諾塔問題解法代碼
    2013-03-03
  • VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細步驟

    VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細步驟

    在很多時候我們在寫程序的過程中會發(fā)現(xiàn)一些非編程錯誤的問題,這樣的問題很難直接分辨出來,但是我們可以用調(diào)試了一步一步的模擬程序運行的過程,來找出程序的錯誤,下面這篇文章主要給大家介紹了關于VS2019調(diào)試C語言程序(監(jiān)視操作)的詳細步驟,需要的朋友可以參考下
    2022-11-11
  • C++中的new/delete、構造/析構函數(shù)、dynamic_cast分析

    C++中的new/delete、構造/析構函數(shù)、dynamic_cast分析

    這篇文章主要介紹了C++中的new/delete、構造/析構函數(shù)、dynamic_cast分析 本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • linux C 打印錯誤信息和標準輸入輸出詳細介紹

    linux C 打印錯誤信息和標準輸入輸出詳細介紹

    這篇文章主要介紹了linux C 打印錯誤信息和標準輸入輸出詳細介紹的相關資料,需要的朋友可以參考下
    2016-12-12

最新評論

房山区| 广安市| 雷波县| 永康市| 福州市| 工布江达县| 宁晋县| 禹州市| 洪江市| 绥滨县| 嵊泗县| 贡山| 沙河市| 共和县| 平乡县| 河间市| 房产| 金沙县| 东宁县| 乌海市| 毕节市| 沂源县| 巨鹿县| 竹溪县| 永平县| 大悟县| 收藏| 曲麻莱县| 盐津县| 临泉县| 姚安县| 大同市| 故城县| 牡丹江市| 辽宁省| 禹城市| 图木舒克市| 格尔木市| 横山县| 虎林市| 阿城市|