c語言中陣列相關問題

2022-08-11 10:57:08 字數 1300 閱讀 3233

1.陣列基本定義: 相同資料型別的元素按一定順序排列的集合,就是把有限個型別相同的變數用乙個名字命名,然後用編號區分他們的變數的集合,這個名字稱為陣列名,編號稱為下標。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。陣列是在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來的一種形式。這些按序排列的同類資料元素的集合稱為陣列。

2.語法:  資料型別 + 陣列名+[元素個數]

3.初始化:初始化方式: int  a[5]=。

編譯器會根據初始化使用的元素個數自動提供個數。比如:inta=,元素個數為3.

陣列使用時應該注意的事項:

1,如果初始化時在後方元素賦值不全,沒有初始化的元素,預設值為0 ;

2.陣列中每乙個變數稱為元素。每個變數的位置是確定的。使用從0開始的序號進行訪問。序號稱為下標或者索引。

3.存放一維陣列的陣列稱為二維陣列。

4.陣列的型別:資料型別表示陣列元素的型別是什麼。元素中的資料型別是統一的。

5.陣列元素個數不允許時浮點數。可以是整數表示式。陣列元素就是變數,直接可以用:如sum=a[1]+a[2];

6陣列初始化方式:如:inta[5]=,如果初始化時不完全:沒有初始化的元素,預設值為0 ;

7.編譯器會根據初始化使用的元素個數自動提供個數,如下文:

int a=,元素個數為3.,sizeof(a)=12(每個元素佔四個位元組所以一共12位元組);

14,使用陣列求n個數的統計

15.棧和堆的概念。利用陣列模擬棧的結構。

下面介紹乙個陣列在列印的時候溢位的問題:

// main.c for  xcode6.0

//  當我定義了乙個可以盛放十個元素的陣列arry[10]並賦值之後,使用printf函式加乙個for迴圈體進行列印,這個時候有趣的事情發生了:

在printf下方的迴圈體中,由於迴圈條件設定不當,導致我對陣列的列印下標越界。當列印a[10]時,printf函式自動將記憶體中本來存在的亂碼列印出來了。

所以,下標越界問題,是程式猿使用陣列時經常犯,也必須注意的問題。因為,這個bug編譯器是不會報錯的。

其實記憶體中陣列的存放方式是這樣的:

C語言中static相關

1.對於全域性static變數,初始化 首先是全域性變數,被初始化為0,其次是static也被初始化為0 存放位置 存放於記憶體的靜態區。作用域 開始於定義位置,終止於檔案的結尾。本檔案之內在沒有定義此static全域性變數之前,想使用的話需要加extern宣告。最好在檔案開始處就定義,避免使用ex...

C語言中隨機數相關問題

用c 語言產生隨機數重要用到 rand 函式 srand 函式 及巨集 rand max 32767 它們均在 stdlib.h 中進行了宣告。int rand void 生成乙個隨機數 voidsrand unsigned int seed 為rand 設定 種子 的值 srand 就是給rand...

C語言中隨機數相關問題

用c 語言產生隨機數重要用到 rand 函式 srand 函式 及巨集 rand max 32767 它們均在 stdlib.h 中進行了宣告。int rand void 生成乙個隨機數 voidsrand unsigned int seed 為rand 設定 種子 的值 srand 就是給rand...