方法:1、定義數組時給所有元素賦初值,例“int a[5]={1,2,3,4,5}”;2、給一部分元素賦值,例“ int a[5]={1,2}”;3、定義時不指定數組長度,直接給所有元素賦初值,例“int a[]={1,2,3,4,5}”。
本教學操作環境:windows7系統、c99版本、Dell G3電腦。
陣列初始化
陣列的初始化可以使用以下方法實作:
1) 定義陣列時給所有元素賦初值,這叫做「完全初始化」。例如:
int a[5] = {1, 2, 3, 4, 5};
透過將陣列元素的初值依序放在一對花括號中,如此初始化之後,a[0]=1;a[1]=2;a[2]=3; a[3]=4;a[4]=5,即從左到右依序賦給每個元素。要注意的是,初始化時各元素間是用逗號隔開的,不是用分號。
2) 可以只給一部分元素賦值,這叫做「不完全初始化」。例如:
int a[5] = {1, 2};
定義的陣列a 有5 個元素,但花括號內只提供兩個初值,這表示只給前面兩個元素a[0]、a[1] 初始化,而後面三個元素都沒有被初始化。不完全初始化時,沒有被初始化的元素會自動為 0。
要注意的是,「不完全初始化」和「完全不初始化」不一樣。如果“完全不初始化”,也就是只定義“int a[5];”而不初始化,那麼各個元素的值就不是0了,所有元素都是垃圾值。
你也不能寫成「int a[5]={};」。如果大括號中什麼都不寫,那就是極為嚴重的文法錯誤。大括號中最少要寫一個數。例如“int a[5]={0};”,這時就是給數組“清零”,此時數組中每個元素都是零。此外,如果定義的陣列的長度比花括號中所提供的初值的個數少,也是語法錯誤,如「a[2]={1,2,3,4,5};」。
3) 如果定義數組時就給數組中所有元素賦初值,那麼就可以不指定數組的長度,因為此時元素的個數已經確定了。 程式設計時我們常常都會使用這種寫法,因為方便,既不會出問題,也不用自己計算有幾個元素,系統會自動分配空間。例如:
int a[5] = {1, 2, 3, 4, 5};
可以寫成:
int a[] = {1, 2, 3, 4, 5};
第二種寫法的花括號中有 5 個數,所以系統會自動定義陣列 a 的長度為 5。但是要注意,只有在定義數組時才可以這樣寫。如果定義數組時不初始化,那麼省略數組長度就是語法錯誤。例如:
int a[];
那麼編譯時就會提示錯誤,編譯器會提示你沒有指定陣列的長度。
下面寫一個簡單的程式給大家:
# include <stdio.h> int main(void) { int a[5] = {1, 2, 3, 4, 5}; int i; for (i=0; i<5; ++i) { printf("%d\n", a[i]); } return 0; }
#輸出結果是:
1 2 3 4 5
a 表示陣列的名字,[5] 表示這個陣列有5 個元素,並分別以a[0]、a[1]、a[2]、a[3]、a[4] 表示。並分別把花括號內的 1、2、3、4、5 賦給變數 a[0]、a[1]、a[2]、a[3]、a[4]。再次強調,下標從 0 開始,即從 a[0] 開始,而不是 a[1]。
也可以用scanf 手動從鍵盤對數組進行初始化:
# include <stdio.h> int main(void) { int a[5] = {0}; //数组清零初始化 int i; printf("请输入5个数:"); for (i=0; i<5; ++i) { scanf("%d", &a[i] ); } for (i=0; i<5; ++i) { printf("%d\x20", a[i]); } printf("\n"); return 0; }
#輸出結果是:
请输入5个数:1 2 3 4 5 1 2 3 4 5
同使用scanf 給字元數組輸入字串時有所不同,輸入數字時必須用for 迴圈輸入。而輸入字串時無須用循環,直接用 scanf 就可以了。
相關推薦:《C語言影片教學》
以上是c語言數組怎麼初始化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

C#是一種現代、面向對象的編程語言,由微軟開發並作為.NET框架的一部分。 1.C#支持面向對象編程(OOP),包括封裝、繼承和多態。 2.C#中的異步編程通過async和await關鍵字實現,提高應用的響應性。 3.使用LINQ可以簡潔地處理數據集合。 4.常見錯誤包括空引用異常和索引超出範圍異常,調試技巧包括使用調試器和異常處理。 5.性能優化包括使用StringBuilder和避免不必要的裝箱和拆箱。

C#.NET應用的測試策略包括單元測試、集成測試和端到端測試。 1.單元測試確保代碼的最小單元獨立工作,使用MSTest、NUnit或xUnit框架。 2.集成測試驗證多個單元組合的功能,常用模擬數據和外部服務。 3.端到端測試模擬用戶完整操作流程,通常使用Selenium進行自動化測試。

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。

C#.NET是構建微服務的熱門選擇,因為其生態系統強大且支持豐富。 1)使用ASP.NETCore創建RESTfulAPI,處理訂單創建和查詢。 2)利用gRPC實現微服務間的高效通信,定義和實現訂單服務。 3)通過Docker容器化微服務,簡化部署和管理。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。