十二、數組

1. 一維數組的創建和初始化

數組是一組相同類型元素的集合。

變長數組是不能初始化的。

數組的初始化是指,在創建數組的同時給數組的內容一些合理初始值(初始化)。

例如上圖

char ch3[ ]="abc";里面方的就是 a b c \0

char ch3[ ]="abc";里面方的就是 a b c \0

對于數組的使用我們之前介紹了一個操作符:[ ],下標引用操作符。它其實就數組訪問的操作符。

總結:

  1. 數組是使用下標來訪問的,下標是從0開始。
  2. 數組的大小可以通過計算得到

一維數組在內存中的存儲

地址和地址之間差四個字節,因為一個整形占4個字節。

隨著數組下標的增長,元素的地址,也在有規律的遞增。

由此可以得出結論:數組在內存中是連續存放的。

2. 二維數組的創建和初始化

二維數組可以省略行,不能省略列。

二維數組在內存中也是連續存儲的。

3. 數組越界

數組的下標是有范圍限制的。

數組的下規定是從0開始的,如果數組有n個元素,最后一個元素的下標就是n-1。

所以數組的下標如果小于0,或者大于n-1,就是數組越界訪問了,超出了數組合法空間的訪問。

C語言本身是不做數組下標的越界檢查,編譯器也不一定報錯,但是編譯器不報錯,并不意味著程序就是正確的, 所以程序員寫代碼時,最好自己做越界的檢查。

越界之后打印的是隨機數。

4. 數組作為函數參數

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

冒泡排序的核心思想:兩個相鄰的元素進行比較。

一趟冒泡排序讓一個數據來到它最終應該出現的位置上!

10個元素需要9次。

n個元素需要n-1次冒泡排序。

數組名本質上是:數組首元素的地址

//數組傳參的時候,形參有2種寫法:
//1.數組
//2.指針//形參是數組的形式
void bubble_sort(int arr[],int sz)
{int i = 0;for ( i = 0; i < sz-1; i++){//一次冒泡排序int j = 0;for ( j = 0; j < sz-1-i; j++){if (arr[j] > arr[j + 1]){//交換int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}}int main()
{//把數組的數據排列成升序int arr[] = { 9,8,7,6,5,4,3,2,1,0 };//降序int sz = sizeof(arr) / sizeof(arr[0]);//冒泡排序的算法,對數組進行排序bubble_sort(arr,sz);int i = 0;for ( i = 0; i < sz; i++){printf("%d ", arr[i]);}return 0;
}
//形參是指針的形式
void bubble_sort(int* arr,int sz)
{int i = 0;for ( i = 0; i < sz-1; i++){//一次冒泡排序int j = 0;for ( j = 0; j < sz-1-i; j++){if (arr[j] > arr[j + 1]){//交換int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}}int main()
{//把數組的數據排列成升序int arr[] = { 9,8,7,6,5,4,3,2,1,0 };//降序int sz = sizeof(arr) / sizeof(arr[0]);//冒泡排序的算法,對數組進行排序bubble_sort(arr,sz);int i = 0;for ( i = 0; i < sz; i++){printf("%d ", arr[i]);}return 0;
}

5.數組名是什么?

數組名確實能表示首元素的地址。

但是又兩個例外:

1.sizeof(數組名),這里的數組名表示整個數組,計算的是整個數組的大小,單位是字節。

2.&數組名,這里的數組名表示整個數組,取出的是整個數組的地址。

二維數組的數組名也表示首元素的地址。

表示的這一行的地址

中間隔了十六個字節,也就是四個數值。

行列計算

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41893.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41893.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41893.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EDA 2023 年世界國家suicide rate排名

文章目錄 前言:關于數據集列 導入模塊導入數據數據預處理探索性數據分析按性別劃分的自殺率 [箱線圖]相關矩陣熱圖自殺率最高的 15 個國家變化百分比最高的 15 個國家/地區2023 年世界地圖上自殺率的國家 結尾: 前言: 隨著社會的不斷發展和變遷&#xff0c;人們對于各種社會問…

揭秘:源代碼防泄密的終極秘籍

在當今信息科技高度發達的時代&#xff0c;源代碼作為企業最核心的資產之一&#xff0c;其安全性不言而喻。源代碼的泄露可能導致企業技術機密被競爭對手獲取&#xff0c;進而威脅到企業的市場競爭力和長遠發展。因此&#xff0c;源代碼防泄密成為了企業信息安全工作的重中之重…

前端JS特效第24波:jQuery輕量級響應式幻燈片插件EasyFader

jQuery輕量級響應式幻燈片插件EasyFader&#xff0c;先來看看效果&#xff1a; 部分核心的代碼如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"utf-8"> <title>jQuery輕量級響應式幻燈片插件E…

C-10 凸包

凸包 數學定義 平面的一個子集S被稱為是凸的&#xff0c;當且僅當對于任意兩點A&#xff0c;B屬于S&#xff0c;線段PS都完全屬于S過于基礎就不詳細介紹了 凸包的計算 github上找到了別人的代碼&#xff0c;用4種方式實現了凸包的計算&#xff0c;把他放在這里鏈接地址htt…

可靈ai出web端了

網址 https://klingai.kuaishou.com/ 可靈ai出web端了 最近最火的莫過于老照片動態視頻了&#xff0c;現在可靈出web端了&#xff0c;更利好開發者了。

redis運維:sentinel模式如何查看所有從節點

1. 連接到sentinel redis-cli -h sentinel_host -p sentinel_port如&#xff1a; redis-cli -h {域名} -p 200182. 發現Redis主服務器 連接到哨兵后&#xff0c;我們可以使用SENTINEL get-master-addr-by-name命令來獲取當前的Redis主服務器的地址。 SENTINEL get-master-a…

原生JS常用方法總結

文章目錄 根據 cookie 的 key 獲取 value根據 xpath 獲取頁面元素ajax請求 根據 cookie 的 key 獲取 value // 獲取cookie function getCookie(key){var arrstr document.cookie.split("; ");for (var i 0; i < arrstr.length; i){var temp arrstr[i].split(&…

手動安裝Ruby 1.9.3并升級RubyGems

手動安裝Ruby 1.9.3并升級RubyGems ###Ruby 1.9.3 p125安裝 wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz \ && tar -xzvf ruby-1.9.3-p125.tar.gz \ && cd ruby-1.9.3-p125 \ && ./configure --with-openssl-dir/usr/lib/op…

Python骨架肌體運動學數學模型

&#x1f3af;要點 &#x1f3af;運動學矢量計算 | &#x1f3af;跳遠的運動學計算 | &#x1f3af;關節肢體運動最小加加速度模型 | &#x1f3af;膝關節和踝關節角度二維運動學計算 | &#x1f3af;上下肢體關節連接運動鏈數學模型 | &#x1f3af;剛體連接點速度加速度計算…

[python]Markdown圖片引用格式批處理桌面應用程序

需求 使用python編寫一個exe&#xff0c;實現批量修改圖片引用&#xff0c;將修改后的文件生成為 文件名_blog.md。有一個編輯框&#xff0c;允許接收拖動過來md文件&#xff0c;拖入文件時獲取文件路徑&#xff0c;有一個編輯框編輯修改后的文件的輸出路徑&#xff0c;用戶拖入…

Springboot實戰:AI大模型+亮數據代理助力短視頻時代

目錄 前言1.如何入門亮數據1.1、注冊登錄1.2、注冊賬號1.3、登錄1.4、購買靜態住宅代理1.5、展示購買的代理 2. 使用Springboot、AI大模型構建系統2.1 使用Springboot、AI大模型構建爬蟲2.2、在Springboot項目添加工具 3、編寫代碼&#xff0c;爬取視頻素材3.1、代碼里使用代理…

Redis核心問題總結(一)

1、為什么要使用Redis做緩存 緩存的好處 使用緩存的目的就是提升讀寫性能。而實際業務場景下&#xff0c;更多的是為了提升讀性能&#xff0c;帶來更好的性 能&#xff0c;帶來更高的并發量。Redis 的讀寫性能比 Mysql 好的多&#xff0c;我們就可以把 Mysql 中的熱點數據緩 …

如何編譯ffmpeg支持h265(hevc)?

推薦使用這里的文件&#xff1a;https://github.com/runner365/ffmpeg_rtmp_h265 根據你ffmpeg的源碼 版本&#xff0c;切換到不同分支即可。 國內cdn方式: 新增codecid hevc/vp8/vp9/opus在rtmp中的codecid沒有官方協議定義&#xff0c;由國內眾多知名cdn共同制定。 FLV_COD…

1. LangChain4j 之入門(簡單易學)

一&#xff1a;前言 什么是LangChain&#xff1f;而LangChain4j又是什么&#xff1f;不知道的朋友&#xff0c;可以看我一下兩篇文章 1分鐘了解LangChain是什么? | 1分鐘了解LangChain4j是什么? LangChain4j是LangChain的Java版本&#xff0c;幫助開發者很容易的接入大模型的…

提升結構安全性:應變計在現代建筑中的應用

在現代建筑領域&#xff0c;隨著工程技術的不斷進步&#xff0c;對結構安全性的要求也日益提高。作為一種關鍵的工程儀器儀表&#xff0c;應變計在提升結構安全性方面發揮著不可替代的作用。本文將深入探討應變計在現代建筑中的應用&#xff0c;以及它如何助力工程師們實時監測…

權力之望怎么注冊賬號創建角色 權利之網角色賬號注冊教程

權力之望是一款全新的大型MMORPG游戲&#xff0c;擁有9把獨特武器和56種職業組合&#xff0c;并搭配了超炫酷的戰斗畫面&#xff0c;全程采用低俯視角游戲&#xff0c;讓玩家能體驗到更強的操作感和爽快感。這款游戲主打高養成自由度玩家可以自由更換武器進行戰斗&#xff0c;還…

前端面試題30(閉包和作用域鏈的關系)

閉包和作用域鏈在JavaScript中是緊密相關的兩個概念&#xff0c;理解它們之間的關系對于深入掌握JavaScript的執行機制至關重要。 作用域鏈 作用域鏈是一個鏈接列表&#xff0c;它包含了當前執行上下文的所有父級執行上下文的變量對象。每當函數被調用時&#xff0c;JavaScri…

零基礎也能成為產品冊設計高手

?在當今數字化時代&#xff0c;產品冊設計已成為企業營銷的重要手段之一。過去&#xff0c;人們認為只有專業人士才能設計出精美的產品冊&#xff0c;然而&#xff0c;隨著設計工具的普及和在線學習資源的豐富&#xff0c;零基礎的你也能成為產品冊設計高手。本文將帶你走進這…

MindsDB:一個利用企業數據構建 AI 的平臺

MindsDB作為一個開源項目&#xff0c;它旨在將機器學習模型無縫集成到現有的數據庫系統中&#xff0c;為用戶提供實時的數據預測能力。這個項目的創新之處在于&#xff0c;它能夠以簡單、直觀的方式讓開發者和非技術人員都能夠利用AI進行數據分析和預測。 它是根據企業數據庫定…

航空航天單位保密網文件導出管理難點在哪里?如何解決?

航空航天單位的重要性不言而喻&#xff0c;它們在國家安全、科技進步、經濟發展以及國際合作等多個領域都扮演著至關重要的角色。為了保護工作內容中的重要數據&#xff0c;遵守保密規定&#xff0c;對涉密人員、保密要害部門單位、涉密載體、涉密信息傳輸和涉密活動進行嚴格管…