單片機C語言中數組的用法

2020-12-25 電子產品世界

數組是由具有相同類型的數據元素組成的有序集合。數組是由數組名來表示的,數組中的數據由特定的下標來唯一確定。引入數組的目的,是使用一塊連續的內存空間存儲多個類型相同的數據,以解決一批相關數據的存儲問題。數組與普通變量一樣,也必須先定義,後使用。數組在C51語言的地位舉足輕重,因此深入地了解數組是很有必要的。下面就對數組進行詳細的介紹。

本文引用地址:http://www.eepw.com.cn/article/172452.htm

(1)一維數組

一維數組是最簡單的數組,用來存放類型相同的數據。數據的存放是線性連續的。

用以下例程說明數組的建立、數據操作:

#include

/*

-----------------------------------------------------

此程序用以說明數組的建立、數據操作

-----------------------------------------------------

*/

unsigned char array[10];//定義一個有10個單元的數組

void main()

{

unsigned char i;

for(i=0;i10;i++)

{

array[i]=i; //用下標調用數組中的元素

}

/*

---------------------------------------

array |9|8|7|6|5|4|3|2|1|0| [9]~[0]

---------------------------------------

*/

while(1);

}

數組名是用來表示數組的標識,其實它是數組的首地址,即一個指針。不過它所表示的地址是固定的,不能改動。如前幾章所述的相關內容,array[2]與*(array+2)是等效的,不過不能用array++,因為array是常量。

上面的程序中的數組是靜態建立的,以下例程來用說明數組的動態建立。

#include

#include

/*

-----------------------------------------------------

此程序用以說明數組的動態建立

-----------------------------------------------------

*/

unsigned char *parray;

void main()

{

unsigned char i;

parray=(unsigned char *)malloc(10); //動態創建一個數組

for(i=0;i10;i++)

{

parray[i]=i; //向數組中賦值

}

free(parray); //釋放數組

while(1);

}

字符串是數組的一個重要特例。它的每個單元的數據均為字符類型(char),最後一個單元為' '(0x00),用來表示字符串的結束。C51函數庫中提供了專門對字符串進行處理的函數,用以下例程說明:

#include

#include

/*

-----------------------------------------------------

此程序用以說明字符串

-----------------------------------------------------

*/

char s[]={'y','a','h','o','o',' '};

//定義一個字符串,並對它進行初始化,以' '結束

void main()

{

char s_temp[10];

strcpy(s_temp,s);//strcpy位於string.h頭文件中,實現字符拷貝

//s為一個常量,不能s++

strcpy(s_temp,yahoo);//與上面的語句等效

while(1);

}

相關焦點

  • 單片機的C語言中數組的用法
    數組是由具有相同類型的數據元素組成的有序集合。數組是由數組名來表示的,數組中的數據由特定的下標來唯一確定。引入數組的目的,是使用一塊連續的內存空間存儲多個類型相同的數據,以解決一批相關數據的存儲問題。數組與普通變量一樣,也必須先定義,後使用。數組在C51語言的地位舉足輕重,因此深入地了解數組是很有必要的。
  • 寫出高效優美的單片機C語言代碼
    選擇一種合適的數據結構也很重要,比如你在一堆隨機存放的數中使用了大量的插入和刪除指令,那使用鍊表要快得多。數組與指針語句具有十分密碼的關係,一般來說,指針比較靈活簡潔,而數組則比較直觀,容易理解。對於大部分的編譯器,使用指針比使用數組生成的代碼更短,執行效率更高。但是在Keil中則相反,使用數組比使用的指針生成的代碼更短。
  • 如何寫出高效優美的單片機C語言代碼?
    選擇一種合適的數據結構也很重要,比如你在一堆 隨機存放的數中使用了大量的插入和刪除指令,那使用鍊表要快得多。數組與指針語句具有十分密碼的關係,一般來說,指針比較靈活簡潔,而數組則比較直觀,容 易理解。對於大部分的編譯器,使用指針比使用數組生成的代碼更短,執行效率更高。但是在Keil中則相反,使用數組比使用的指針生成的代碼更短。
  • C語言字符數組和字符串
    字符數組的各個元素依次存放字符串的各字符,字符數組的數組 名代表該數組的首地址,這為處理字符串中個別字符和引用整個字符串提供了極大的方便。一、字符數組字符數組的定義形式與前面介紹的數值數組相同。例如: 字符數組也允許在定義時進行初始化賦值。
  • 51單片機基礎剖析(基於C語言)
    處於SMALL模式下的函數參數和局部變量位於8051單片機內部RAM中,處於COMPACT和LARGE模式下的函數參數和局部變量則使用單片機外部RAM。在定義一個函數時可以明確指定該函數的存儲器模式。方法是在形參表列的後面加上一存儲模式。
  • PIC單片機C語言程序設計(5)
    除了控制語句和輸入、輸出之外,幾乎所有的基本操作,都是按照運算符來進行處理的,可見其在C語言中的重要性。  1.C語言運算符的作用與分類  C語言的運算符可以靈活地與運算對象組合成運算表達式。按其在表達式中的作用,運算符可分成基本運算符和其他運算符。
  • c語言指針與字符數組
    我們所說的字符串就是字符數組的一種,就如我們常見的"hello world!",字符串的使用在C語言中也是非常重要的,常常會遇到一些操作,如字符串的修改、拷貝、字符串長度等,在物聯網的應用中也尤為突出,物聯網應用中所用的模組,大多是需要使用AT指令的,這就需要對字符串的操作。
  • PIC單片機C語言程序設計(4)
    2.if語句  if 語句也稱為條件語句,是C 語言中轉移語句之一。在設計C 語言程序時,常常要根據某些條件以決定程序運行的流向,這時就需要if 語句來實現。
  • PIC單片機CCS之C語言(#IF,#ENDIF的用法)
    len char c; //聲明字節型變量c --max; //初始化max值 len=0; //初始化len值 do { c=getc(); //從RS232口讀一個字節,存儲到c中 if(c==8) { // Backspace若是空格鍵 if(len>0) { len--;
  • 單片機C語言如何產生隨機數
    隨機數在單片機的應用中也是很多的,當然產生隨機數的方法有很多,當中有一個就是利用單片機定時器,取出未知的定時器THX和TLX的值,再加以運算得到一個規定範圍內的隨機數值。
  • R語言中數組的使用
    在R語言中,可以認為數組是矩陣的擴展,它將矩陣擴展到2維以上。如果給定的數組是1維的則相當於向量,2維的相當於矩陣。R語言中的數組元素的類型也是單一的,可以是數值型,邏輯型,字符型或複數型等。數組的創建在R語言中,數組使用array()函數創建。
  • c語言中sscanf函數的高級用法
    sscanf函數用來從給定字符串中讀取所需數據,用在一些數據轉換時比較方便。常見用法和scanf類似,用%s,%d等獲取字符串和整數。但在%號後可以支持更多的格式,甚至是正則表達式,這樣一來sscanf的功能就比較強大了。
  • 入門C語言中的數組,字符串常量與指針
    …… int list [MAX_SIZE + 1];C數組開始於元素0,所以像陣列定義 int a[3];將創建三個int元件,可尋址如a[0],a[1],和a[2]請注意,即使定義很難說a[3],也沒有名為a[3]與其他變量一樣,全局和靜態數組元素默認情況下初始化為0,並且自動數組元素填充有垃圾值
  • 單片機常用的14個C語言算法
    本題使用數組來處理,用數組a[100]存放產生的確100個隨機整數,數組x[10]來存放個位上的數字分別為1,2,3,4,5,6,7,8,9,0的數的個數。即個位是1的個數存放在x[1]中,個位是2的個數存放在x[2]中,……個位是0的個數存放在x[10]。
  • 單片機C語言如何產生隨機數?
    隨機數在單片機的應用中也是很多的,當然產生隨機數的方法有很多,當中有一個就是利用單片機定時器,取出未知的定時器THX和TLX的值,再加以運算得到一個規定範圍內的隨機數值,這種做法也是可行的;或者預先寫好一個隨機數表,然後從表中取數據也是可以的。
  • c語言入門教程
    這本書被 C語言開發者們稱為"K&R",很多年來被當作 C語言的非正式的標準說明。人們稱這個版本的 C語言為"K&R C"。  c語言宣傳圖1970到80年代,C語言被廣泛應用,從大型主機到小型微機,也衍生了C語言的很多不同版本。
  • 基於C語言51單片機電子密碼鎖的設計與仿真
    0、引言  電子密碼鎖是現代生活中常用的加密工具。  電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用。而本文所介紹的電子密獁鎖使用移植性及可讀性強的高級語言C語言編寫,便於修改和增減功能蚤同時採用顯示清楚數碼管,功率消耗小而且壽命長的 液晶顯示器,顯示更加直觀,使用更加方便。
  • 單片機c語言教程:C51複合語句和條件語句
    在 VB 等一些語言中同一個()號會有不一樣的 作用,它能用於組合若干條語句形成功能塊,能用做數組的下標等,而在 C 中括號的分 工較為明顯,{}號是用於將若干條語句組合在一起形成一種功能塊,這種由若干條語句組合 而成的語句就叫複合語句。
  • 單片機c語言教程:C51循環語句
    在 C 語言中構成循環控制的語句有 while,do-while,for 和 goto 語句。同樣都是起到循環作用,但具體的作用和使用方法又大不一 樣。我們具體來看看。goto 語句這個語句在很多高級語言中都會有,記得小時候用 BASIC 時就很喜歡用這個語句。
  • 【愛找茬】都是C語言,單片機C語言和普通的C語言究竟有什麼差異呢?
    許多小夥伴在學完C語言後想入門單片機,但學著學著發現明明都是C語言,為什麼單片機C語言和我當初學的C語言有差異呢?今天小編就來梳理我們平時所學的C語言與單片機C語言的有什麼樣的不同。