c語言一維數組總結詳解

目錄

介紹:

一維整型數組:

聲明:

初始化:

打印輸出:

輸出結果:

浮點型數組:

代碼:

運行結果:

補充:

一維字符數組:

字符數組聲明及初始化:

部分全部代碼:

總結:

介紹:

本篇文章將同時介紹一維整型,浮點型,字符數組

一維整型數組:

聲明:

int?+?數組名[數組長度(也可以不寫)]

初始化:

來看代碼解釋初始化方法

int a[ ] :?a這個數組的長度雖然沒寫 但是因為后面的初始化?這個數組的長度是6

int a1[6] :?a1這個數組的初始化就是最標準的聲明及初始化方式
還有一種方式:

int a2[6]: a2這個數組的初始化 是從鍵盤輸入數值(很顯然輸入六個值)?大家應該我的第一行代碼是什么意思?

因為我用的Visual Studio 2022 編譯器?不加第一行代碼scanf用不了?

打印輸出:

那么怎么輸出這幾個數組呢?來看代碼:

倒數三個for循環就是用來打印三個數組 所以打印數組就得用for循環??如果大家還有什么辦法評論區發言哦

輸出結果:

第一行就是a2數組的輸入

2,3,4行就分別是三個數組的?輸出結果

浮點型數組:

代碼:

這里的代碼就不做講解了 大家可以看上文

運行結果:

?

這里第一行和小編上一篇文章一樣?輸入了一個數組?

補充:

大家先看小編給大家寫的一個圖片:

看完這個圖片小編補充一下

就是數組 a[6]:?"[? ?]"?里面的數字6?代表這個數組有6個元素?就是6 個int類型的數字?

然后 如果咱們想要用數組里的第一個數字1?我們要取a[0]

所以很容易發現一個規律:想要數組里的第n個數?a[n - 1]??就是那個數

一維字符數組:

字符數組聲明及初始化:

來看代碼:

1.數組b就是 最普遍的初始化字符數組和聲明數組的方法 可以看到和 之前講過的整型數組非常相似 就是存儲的數據類型不同?

2.數組a就有點不同了 大家可以發現 相比于數組b 數組a多了一個‘\0’ 這就說明 數組a可以當做字符串使用了 因為它具備了字符串的標志‘\0’ ?‘\0’ 就是字符串的結束符 每個字符串都應具有的標志 否則 計算機就找不到字符串的頭在哪了 就會一直讀 會出現一堆亂碼 直到讀到字符串數組的最后一個元素 和整型一樣 沒有初始化的元素 系統會隨機顯示一些數 而有了結束符之后 系統就不會往后讀了 這些 下面講

注意:像數組a,b這種初始化方式 未初始化的部分都是空 就打印出來什么都沒有

?

可以看到并沒有出現亂碼 這里聽不懂的 就懂了

3.數組a1就是把a1看成了一個字符串 這個時候系統會自動在數組的后面加一個‘\0’ 不需要我們手動加 還要注意一點就是數組的長度要比我們存進去的字符串的長度大 因為得給‘\0’ 留一個位置啊 它可是大哥啊

4.數組a2與a1一樣 所以可以看到 ?當要聲明一個字符串的時候 加不加{ }都無所謂?

5.數組a3 這個數組可以發現僅僅聲明了 并沒有初始化 下面是他的初始化代碼

?

?

?gets函數就是用來初始化這個a3數組的 通過代碼可以看到這個函數的用法 原理就是咱們自己輸入

一個字符串然后存在a3里 但是記住輸入的字符串長度不可以超過14 因為要給‘\0’ 留一個位置啊 很顯然 gets函數 也是自動在字符串的后面補個‘\0’ 沒有‘\0’ 怎么能叫做字符串呢

puts函數用來打印字符串 當然你也可以用printf函數 但是puts函數打印完一個字符串會換行

來看這段代碼的執行結果:

很顯然咱們輸入zsm了zsm?

再來看看用printf打印字符串?

很顯然打印完字符串的時候沒有換行 而且我們要用“%s”?去打印字符串 同時可以發現 我們只寫了a3 就打印字符串了 所以當我們打印字符串時 傳入字符串的首地址就會打印字符串了 直到‘\0’?為止

6.數組a4?下面是他的初始化代碼:

?

EOF?這里就不深說了 我告訴大家怎么用 就是咱們不是輸入字符串嗎 當你不想輸的時候 就先回車?在?ctrl + z 回車 (重復三次就完事了)

再說一個細節 就是scanf函數不接收空格 但是它可以補‘\0’??當前面是%s的時候

來看執行結果

^Z 就是ctrl + z啦

其實還有另一種寫法

這種就不需要?ctrl + z那種操作啦

來看執行結果

可以看到 我輸入了zsm zsm

但是只打印了zsm 因為scanf函數不接收空格

所以當有空格的時候?scanf函數?就停止輸入了

7.數組a5

?這個也一樣用到了EOF? 但是這個不需要重復操作ctrl + z 只需要一次?所以為了好記 大家就記住 遇到EOF?想要結束直接回車然后重復ctrl + z + 回車就完事了直到結束來看執行結果

可以看到在輸出完zsm 之后又來一堆亂碼 這就是 沒有??‘\0’??的緣故 系統讀到了 沒有初始化的部分?

來介紹一種解決辦法 來看代碼

就是按照常規打印數組的方式 打印 有幾個打幾個

部分全部代碼:

?

這里并沒有頭文件大家自己添加吧?

輸出結果:

總結:?

本期內容到此結束啦

大家每天進步一點點就好啦

持續關注我的數組內容哦

再送大家一句話?鍥而舍之,朽木不折;鍥而不舍,金石可鏤

散會!!!

?

?

?

?

?

?

?

?

?

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

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

相關文章

Python軸承故障診斷 (二)連續小波變換CWT

目錄 前言 1 連續小波變換CWT原理介紹 1.1 CWT概述 1.2 CWT的原理和本質 2 基于Python的CWT實現與參數對比 2.1 代碼示例 2.2 參數介紹和選擇策略 2.2.1 尺度長度: 2.2.2 小波函數(wavelet): 2.3 凱斯西儲大學軸承數據的…

《算法與數據結構》答疑

答疑 問題一問題二問題三問題四 問題一 在匹配成功時,在返回子串位置那里,為什么不是i-t的長度啊,為什么還要加一 問題二 問題三 問題四 問:如果題目讓我們構造一個哈夫曼樹,像我發的這個例題的話,我畫成我…

深度學習與計算機視覺技術的融合

深度學習與計算機視覺技術的融合 一、引言 隨著人工智能技術的不斷發展,深度學習已經成為了計算機視覺領域的重要支柱。計算機視覺技術能夠從圖像和視頻中提取有用的信息,而深度學習則能夠通過學習大量的數據來提高計算機視覺技術的性能。本文將探討深…

貪心算法和動態規劃

目錄 一、簡介 二、貪心算法案例:活動選擇問題 1.原理介紹 三、動態規劃案例:背包問題 1.原理介紹 四、貪心算法與動態規劃的區別 五、總結 作者其他文章鏈接 正則表達式-CSDN博客 深入理解HashMap:Java中的鍵值對存儲利器-CSDN博客…

Java Web——過濾器 監聽器

目錄 1. Filter & 過濾器 1.1. 過濾器概述 1.2. 過濾器的使用 1.3. 過濾器生命周期 1.4. 過濾器鏈的使用 1.5. 注解方式配置過濾器 2. Listener & 監聽器 2.1. 監聽器概述 2.2. Java Web的監聽器 2.2.1. 常用監聽器 2.2.1.1. ServletContextListener監聽器 …

Course3-Week1-無監督學習

Course3-Week1-無監督學習 文章目錄 Course3-Week1-無監督學習1. 歡迎1.1 Course3簡介1.2 數學符號約定 2. K-means算法2.1 K-means算法的步驟2.2 代價函數2.3 選擇聚類數量 3. 異常檢測3.1 異常檢測的直觀理解3.2 高斯分布3.3 異常檢測算法3.4 選取判斷閾值 ε \varepsilon ε…

Redis 持久化 —— 超詳細操作演示!

四、Redis 持久化 四、Redis 持久化4.1 持久化基本原理4.2 RDB持久化4.3 AOF持久化4.4 RDB與AOF對比4.5 持久化技術轉型 五、Redis 主從集群六、Redis 分布式系統七、Redis 緩存八、Lua腳本詳解九、分布式鎖 數據庫系列文章: 關系型數據庫: MySQL —— 基礎語法大全…

【京東服裝推薦系統 - 數據爬取、可視化和個性化推薦】

京東服裝推薦系統 - 數據爬取、可視化和個性化推薦 前言數據集與數據爬取數據分析與可視化Django搭建可視化平臺主要功能1. 數據可視化2. 我的收藏3. 商品推薦4. 登錄注冊5. 信息展示6. 信息管理7. 對數據的收藏8. 推薦 創新點結語 前言 在現今的電商市場中,服裝領…

鴻蒙原生應用/元服務開發-新版本端云一體化模板體驗反饋

一、前言 云端一體化模板是基于Serverless服務構建的一套模板,提供了應用生態常見場景需求的代碼實現,開發者可將所需能力快速部署和集成到自己的應用中。 二、準備 體驗最新的遠端一體化模板,需要將云模板替換掉。為此,我們需要做…

我對遷移學習的一點理解——領域適應(系列3)

文章目錄 1. 領域適應(Domain Adaptation)的基本概念2.領域適應(Domain Adaptation)的目標3.領域適應(Domain Adaptation)的實現方法4.領域適應(Domain Adaptation)的可以解決的問題…

gittee使用教學

一、git簡介 Git是一個開源的分布式版本控制系統,用于敏捷高效的處理任何大小項目的版本管理。 核心功能: 項目的版本管理 團隊協同開發 二、準備工作 1、下載 Git 2、除了選擇安裝位置以外,其他都無腦安裝 3、檢查一下安裝情況 win…

常用方法和調度

Thread類的方法 1、start(): ①啟動當前線程(新的線程) ②調用當前線程的run( )。 2. run(): ①通常須要進行重寫 ②將創建線程要執行的操作聲明在此方法中。 3.、currentThread(): ①靜態方法…

這嵌入式“玩具”也太酷了吧~

大家周末好,我是bug菌~ 今天看到有朋友曬出了一個“玩具”,實在是太酷了,嵌入式開發人員誰不愛?于是去了解了下,順便分享給大家~ 這機器是clockwork推出的uconsole,console大家這應該很熟悉&…

Leetcode刷題筆記題解(C++):92. 反轉鏈表 II

思路:獲取要反轉的區間,拆開之后進行反轉再拼接 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* …

【Linux】stat命令使用

stat命令 stat命令用于顯示文件的狀態信息。stat命令的輸出信息比ls命令的輸出信息要更詳細。 著者 由Michael Meskes撰寫。 stat命令 -Linux手冊頁 語法 stat [文件或目錄] 命令選項及作用 執行令 : stat --help 執行命令結果 參數 -L、 --dereference 跟…

【C++】多線程(三)

還是接著講多線程&#xff0c;照例&#xff0c;可以先看上一篇文章。 我們再次回顧一下上次編寫的使用async的多線程程序&#xff1a; int main() {async([]{ cout << "Maybe a new thread?" << endl; });cout << "Yeah, u r right!"…

力扣375周賽

力扣第375場周賽 統計已測試設備 差分數組優化 class Solution { public:int countTestedDevices(vector<int> &batteryPercentages) {int dec 0;for (int x : batteryPercentages) {dec x > dec;}return dec;} };雙模冪運算 快速冪模擬 class Solution { …

Star CCM+ 停止并保存用命令行運行的計算

在 StarCCM 命令行運行 中介紹了命令行運行計算的方法&#xff0c;有網友詢問停止計算的命令&#xff0c;但計算一旦提交之后應該是不能用命令結束的&#xff0c;除非是用 kill 或任務管理器直接結束進程。然而&#xff0c;直接結束進程不會自動保存計算結果。 問題 通常情況下…

lv12 系統移植導學 1

1 導學 Kernel學習主要包括三塊內容&#xff0c;ARM&#xff08;匯編、協議&#xff09;、系統移植、驅動移植 lv12主要時安裝系統linux linux主要幫我們實現了5大功能 1 進程、線程管理 2 內存管理 3 網絡協議棧管理 4 文件系統管理 5 設備管理 2 移植的目的 不同架構…

從零開始搭建鏈上dex自動化價差套利程序(12)

其他品種 擴展到其他幣種的價差套利 1.eth 新建文件get_depth_data_eth.py import asyncio from apexpro.http_public import HttpPublic from dydx3 import Client from dydx3.constants import MARKET_ETH_USD# 定義交易對列表 symbol ETHUSDC market MARKET_ETH_USD# …