那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言-數組

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:59 ? 次閱讀

1. 數組介紹

C語言的數組是一個同類型數據的集合,主要用來存儲一堆同類型的數據。

程序里怎么區分是數組? [ ] 這個括號是數組專用的符號. 定義數組、 訪問數組數據都會用到。

數組的定義語法:

int data[10];  <數據類型> <數據名稱>[常量-整數-數據數量];

定義一個int類型的數組,數組的名稱是data,長度是10,所占空間大小:4*10 字節。

特點:

1.    訪問數組成員的時候:下標是從0開始的。int data[10];  下標 (0~9)
2.    數組只是支持在定義的時候進行整體賦值。
3.    數組定義的時候,[]里只能填常量。數組在定義之后就無法更改大小。
4.    數組的空間是連續的—內存。
5.    數組的名稱就是數組空間的首地址。
6.    數組初始化時,如果沒有賦值,那么數組空間里的數據是未知的---局部變量。
7.    數組初始化時,只要給一個空間賦值,剩余空間都自動初始化為0---局部變量。

數組練習1: 定義一個數組、打印出數組里的數據

#include 
int main()
{
    char i;
    int data[10]={12,13,14,15}; //下標
    int a[5];
    for(i=0;i<10;i++) //0~9
    {
        printf("data[%d]=%d\n",i,data[i]);
    }
    for(i=0;i<5;i++) //0~4
    {
        printf("a[%d]=%d\n",i,a[i]);
    }
    return 0;
}

數組練習2: 從鍵盤上讀取5個數據存放到數組里,在順序打印、逆序打印

#include 
int main()
{
    int i;
    int data[5]={0}; //下標
    //從鍵盤上讀取5個數據存放到數組里
    printf("請輸入5個數據:");
    for(i=0;i<5;i++)
    {
        scanf("%d",&data[i]); //兩種: 空格 、 回車-換行
    }
    
    for(i=0;i<5;i++)
    {
        printf("data[%d]=%d\n",i,data[i]);
    }
    
    for(i=4;i>=0;i--)
    {
        printf("data[%d]=%d\n",i,data[i]);
    }
    return 0;
}

2. 數組定義語法與注意事項

1. 數組的名稱是數組元素的首地址。(數組的名字就是地址)
2. 數組只能在初始化的時候進行整體賦值。比如:  int a[100]={10,20,30};
3. 數組的下標訪問是從0開始的。比如: int a[10];  下標范圍: a[0] ~ a[9] 
4. 數組名稱雖然是地址,但是這個地址是不能偏移、也不能自增自減,也不能改變指向。
   int a[10];   
   int b[10];
   a++、a--;  //錯誤的
   a=b;      //錯誤的
   a[0]=b[0]; // 正確
5. 如果數組是局部變量,初始化沒有賦值的情況下,成員是隨機值。
   比如: int a[10];  printf("%d\n",a[0]);
   初始化的時給數組進行賦值,那么沒有賦值的下標是什么值?
   比如:  int a[10]={1,2,3}; printf("%d\n",a[6]); //0
6. 數組定義的時候(C89), 數組的下標里的大小只能填常量。 
    比如: 
    int a[]; //錯誤的,定義數組必須填大小
    int size=10; int a[size]; //錯誤的,定義數組只能填常量。
    int b[100]; //正確
    #define SIZE 100  int a[SIZE]; //正確

3. 案例: 計算平均值

要求: 定義數組,從鍵盤上錄入5個浮點類型數據存放到數組,計算平均值和最大、最小值,輸出到屏幕上。

#include 
int main()
{
    int i;
    float sum=0;
    float data[5];
    float max=0;
    float min=100;
    printf("請輸入5個數據:");
    /*1. 輸入數據*/
    for(i=0;i<5;i++)
    {
        scanf("%f",&data[i]);
    }
    /*2. 處理數據*/
    for(i=0;i<5;i++)
    {
        sum+=data[i]; //累加
        if(data[i]>max)max=data[i];
        if(data[i])min=data[i];>

4. 案例: 求和

要求: 定義數組,從鍵盤上錄入5個整數數據,求和,輸出結果。

#include 
int main()
{
    int i;
    int sum=0;
    int data[5];
    printf("請輸入5個數據:");
    /*1. 輸入數據*/
    for(i=0;i<5;i++)
    {
        scanf("%d",&data[i]);
    }
    /*2. 處理數據*/
    for(i=0;i<5;i++)
    {
        sum+=data[i]; //累加
    }
    printf("和:%d\n",sum);
    return 0;
}

5. 案例: 判斷數據范圍

要求: 定義數組,從鍵盤上錄入10個整數數據,計算里面大于5、大于10數據的數量,輸出結果。

#include 
int main()
{
    int i;
    int data[10];
    int cnt_10=0,cnt_5=0;
    printf("請輸入10個數據:");
    for(i=0;i<10;i++)
    {
        scanf("%d",&data[i]);
    }
    //處理數據
    for(i=0;i<10;i++)
    {
        if(data[i]>5)cnt_5++;
        if(data[i]>10)cnt_10++;
    }
    printf("cnt_5=%d\n",cnt_5);
    printf("cnt_10=%d\n",cnt_10);
    return 0;
}

6. 案例: 冒泡排序-整數數組

從鍵盤上錄入10個數據,進行冒泡排序. 大到小排序。

#include
int main()
{
    //從鍵盤上錄入5個數據,進行冒泡排序.  大到小排序。
    int a[5];
    int i,j;
    int tmp;
    printf("錄入5個數據:");
    for(i=0;i<5;i++)
    {
        scanf("%d",&a[i]);
    }
    
    for(i=0;ia[j+1])
            {
                tmp=a[j];
                a[j]=a[j+1];
                a[j+1]=tmp;
            }   
        }
    }

    for(i=0;i(a)>(a)>

7. 字符串數組

7.1 字符串特點

1. 字符串本身就是字符數組。比如:char a[10]="123";
2. 常規字符串使用雙引號括起來的。 比如:char a[10]="123";
3. 字符串以'\0' 作為結束符號。
4. 字符數組一定是字符串? 不一定。 比如: char a[]={12,3,4,5,5};

7.2 字符串定義

#include
int main()
{
    char buff1[10]={'1','2','3','\0','4','5','6','\0','7'};
    
    char buff2[]={'1','2','3','\0'};
    char buff3[]="123";

    printf("%d\n",sizeof(buff2)); //4
    printf("%d\n",sizeof(buff3)); //4
    return 0;
}

7.3 計算字符串長度

#include 
#include 

int main()
{
    char buff[100];
    int cnt=0;
    printf("請鍵盤上錄入字符串:");
    scanf("%s",buff); // 不可以錄入空格

    while(buff[cnt]!='\0')
    {
        cnt++;
    }
    printf("cnt=%d\n",cnt);
    return 0;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137712
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    26028
收藏 人收藏

    評論

    相關推薦

    C語言數組詳解

    介紹C語言數組的知識點。
    的頭像 發表于 05-19 10:15 ?6396次閱讀

    C語言數組和指針的區別

    大家好,我是嵌入式老林,從事嵌入式軟件開發多年,今天分享的內容是C語言數組和指針的區別,希望能對你有所幫助。
    發表于 07-11 12:40 ?401次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>數組</b>和指針的區別

    單片機以太網小工具:html文件轉化為C語言數組

    最近在弄LwIP,發現要把HTML文件轉化為C語言數組,比較麻煩,就自己寫了個小程序。 現在拿來與壇友們分享。
    發表于 04-24 15:26

    C語言數組格式介紹

    C語言數組的格式
    發表于 12-17 07:40

    c語言-數組

    = "abcde";char book[][80]={"計算機應用基礎","C語言","C++程序設計","
    發表于 04-07 09:16

    C語言數組類型有哪些?

    C語言數組類型有哪些?
    發表于 10-15 09:06

    C語言數組詳解

    上述的語句把數組中第五個元素的值賦為 50.0。所有的數組都是以 0 作為它們第一個元素的索引,也被稱為基索引,數組的最后一個索引是數組的總大小減去 1。以下是上面所討論的
    的頭像 發表于 09-25 15:43 ?1.5w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>數組</b>詳解

    C語言數組的學習教程說明

    同樣我們在程序中也需要容器,只不過該容器有點特殊,它在程序中是一塊連續的,大小固定并且里面的數據類型一致的內存空間,它還有個好聽的名字叫數組??梢詫?b class='flag-5'>數組理解為大小固定,所放物品為同類的一個購物袋,在該購物袋中的物品是按一定順序放置的。
    發表于 07-29 08:00 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>數組</b>的學習教程說明

    C語言總結_數組全方位練習

    C語言數組的練習題:涉及到數組插入、數組刪除、數組下標數據的左移右移、
    的頭像 發表于 08-14 09:34 ?954次閱讀

    C語言_數組的查找、替換、排序、拼接

    這篇文章主要是總結C語言的位運算幾個實戰例子,接著介紹數組的基本定義用法、數組排序、插入、拼接、刪除、字符串查找替換等。
    的頭像 發表于 08-14 09:48 ?2623次閱讀

    C語言數組是什么

    C 語言支持數組數據結構,它可以存儲一個固定大小的相同類型元素的順序集合。數組是用來存儲一系列數據,但它往往被認為是一系列相同類型的變量。
    的頭像 發表于 02-17 14:29 ?1470次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>數組</b>是什么

    C語言數組元素的指針

    C語言調用函數時虛實結合的方法都是采用“值傳遞”方式,當用變量名作為函數參數時傳遞的是變量的值,當用數組名作為函數參數時。 由于數組名代表的是
    的頭像 發表于 03-10 14:45 ?980次閱讀

    C語言數組和指針的區別

    指針是一個變量,它存儲了一個內存地址,該地址指向一個變量的存儲位置。通過指針,可以訪問和修改指向的變量。
    的頭像 發表于 05-30 10:55 ?845次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>數組</b>和指針的區別

    C 語言數組的基本結構

    數組是最基本的數據結構,關于數組的面試題也屢見不鮮,本文羅列了一些常見的面試題,僅供參考。目前有以下18道題目。 數組求和 求數組的最大值和最小值 求
    的頭像 發表于 06-22 10:56 ?638次閱讀

    C語言數組應用計算機導論A第6講:數組

    C語言數組應用計算機導論A第6講:數組
    發表于 11-20 15:33 ?0次下載
    bet365 体育在线uo| 百家乐官网盛大娱乐城城| 威尼斯人娱乐场28| 威尼斯人娱乐网可信吗| 威尼斯人娱乐网代理| 大发888娱乐场下载 zhldu| 威尼斯人娱乐场积分| 一二博国际| 百家乐官网磁力录| 赌场百家乐官网规则| 波音百家乐官网现金网投注平台排名导航| 做百家乐官网网上投注| 百家乐官网是个什么样的游戏 | 大发888娱乐场是真是假| 博彩通| 百家乐官网免佣台| 澳门百家乐官网娱乐城打不开| 百家乐官网在线赌场娱乐网规则 | 大发888娱乐城下栽| 亚洲博彩网| 百家乐官网桌子豪华| 花莲市| 百家乐官网路单破解器| 百家乐官网赌场玩法技巧| 百家乐必胜软件下载| 百家乐手机壳| 上游棋牌下载| 百家乐官网洗码软件| 百家乐官网英皇娱乐平台| 百家乐玩法教学视频| 大发888真钱游戏祖比| 百家乐官网投注打三断| 澳门百家乐官网赢钱公式不倒翁 | 大发888客户端 运行| 百家乐官网真人荷官| 互博百家乐官网的玩法技巧和规则| 如何玩百家乐游戏| 大发888娱乐网下| 百家乐官网庄和闲的赌法| 做生意挂什么画招财| 威尼斯人娱乐城网络博彩|