6、C語言——數組

來源:互聯網
上載者:User

標籤:使用   nbsp   方式   替換   字串儲存   har   二維   include   字元數組   

數組

一、數組的基礎知識:

        1、同一數組中的所有元素都屬於同一種資料類型(int char float),數組元素用數組名和相應的下標來確定——一批類型相同的資料的集合

        2、一個數組元素其實就是一個變數(可以稱為帶下標的變數)

二、一維數組:

      一維數組的定義和引用【只有一個下標】

        1、一維數組的定義格式:

            類型名 數組名[常量運算式];

                常量運算式是由加減乘除所串連的運算式,不能是變數

                數組名應該遵循使用者定義標識符

 

           定義數組有四個注意:

               1)數組名屬於使用者定義標識符。要遵守標識符命名規則

                 2)定義一維數組時數組名後必須用一個方括弧([])將常量運算式括起來,常量運算式的值表示所定義數組共有多少個元素(數組長度或數組的大小或數組元素的個數)

                 3)定義數組時方括弧中的運算式不能含有變數。另外運算式的值必須要大於零且為正整數

               4)C語言每個數組在記憶體中分配空間時是連續分配的

           注意:

              int N = 9;

              int a[N];此時的N是變數,此書寫格式錯誤

              #define N 9

              int a[N];此時的N是符號常量,此寫法是對的

2、一維數組元素的引用格式:
數組必須先定義後使用
數組不能整體使用,必須使用其元素
數組名[下標]
註:C語言中不能對數組進行整體引用只能單獨引用其中的元素。引用時下標可以是運算式

記住:數組元素的下標值在(0~n-1之間)
3、一維數組的初始化
格式:
類型名 數組名[常量運算式]={初值1,初值2,...};
注意:
1)定義一維數組時可以講個元素的初始值依次放在一對{}中賦給數組(必須用{}將初值括起來,且初值之間用一個逗號分隔)。
2)賦的值多則出錯;少則補0
3)定義賦初值的個數等於數組長度,則數組長度可以省略
4)一個也不給則是隨機值
5)只能在定義數組的同時用{}給數組元素整體賦值

二維數組的定義和引用(有兩個下標)
1、二維數組的定義格式:
類型名 數組名[常量運算式1][常量運算式2]

註:1)數組名要遵守使用者自訂標識符的命名規則
2)定義二維數組第一個方括弧常量表示行數,第二個方括弧常量表示列數
3)定義數組時方括弧的運算式不能含有變數,且運算式的值必須是大於0的正整數
4)在記憶體中二維數組元素的存放也是連續的先行後列原則

2、二維數組元素的引用
數組名[行下標][列下標]
註:
1)不能整體引用,只能引用其中的元素
2)引用二維數組元素時,必須有行下標和列下標兩個下標。從0開始依次加1.

3、二維數組的初始化
方法1:將初值依序放在一對{}中,與一維數組初始化格式相同
方法2:定義二維數組同時,按行初始化每一行初值均用一對{}括起來,採用嵌套的{}格式。
注意:定義二維數組的同時給數組初始化,則可以省略行數,但列數不能省略
int a[][3];此語句錯誤,給數組初始化的時候可以將二維數組的行數省略
初始化中的資料是按照列下標的個數進行劃分——按列劃分

三、字元數組
C語言中沒有字串變數,故採用
方法1:字元數組來存放
方法2:字元型指標變數

1、字元數組的初始化
char s[] = {‘a‘,‘b‘,‘c‘,‘d‘};
與其它類型數組的初始化方式一樣,只是其初始值是字元

2、字串
因為字串最後都有一個字串結束符(‘\0’),所以用字元數組來存放字串是一定要有一個元素存放結束符‘\0‘
1)字串常量後有一個‘\0’
如:“abcd” 由5個字元組成
“”等價與“\0”,是一個Null 字元串
‘\0‘是字元型,"\0"空串是由一個‘\0‘字元型組成

2)用字串給一字元數組進行初始化有三種情況:
方法1:char a[]="abcd";
方法2:char a[]={"abcd"};
只有雙引號出現的時候才能可以將花括弧省略
方法3: char a[]={‘a‘,‘b‘,‘c‘,‘d‘,‘\0‘};
字串使用
1)字串儲存(賦值)四種方法
方法1:scanf();鍵盤輸入
char a[10];
scanf("%s",a);
註:用%s格式輸入時,遇到空格符或斷行符號符則自動結束輸入
方法1:printf();輸出
如:char s[10];
scanf("%s",s);輸入:ab cd<斷行符號>
printf("%s",s);
注意:輸出時則從當前地址開始直到遇到結束符‘\0‘為止

方法2:gets()鍵盤輸入
格式:#include<stdio.h>
gets(字元數組)
功能:讀取一個字串賦給字元數組
註:
1)用該函數輸入字元時,只有遇到斷行符號符系統才結束讀取字元
2)不論是用%s還是gets()在輸入時均不需要輸入雙引號,若輸入時用來雙引號則雙引號也作為字串的有效字元、

puts()輸出
格式:#include<stdio.h>
gets(字元數組或字串常量)
功能:在螢幕上輸出字元數組中的字元
註:用該函數輸出與用%s格式輸出一樣,只是該函數將‘\0‘轉成‘\n‘輸出
方法3:字串初始化
char a[]="abcd";
char a[]={"abcd"};
char a[]={‘a‘,‘b‘,‘c‘,‘d‘,‘\0‘};

2)字串函數,修改字元1
第一個函數:strcat()
格式:#include<string.h>
strcat(字元數組1,字元數組2)
功能:“串連”
第一個‘\0‘開始連入
第二個串‘\0‘也連入
首地址

第二個函數:strcpy()修改字元1
格式:#include<string.h>
strcpy(字元數組1,字元數組2)
功能:將字元數組2中的字串替換到字元數組1中。函數值為字元數組1的首地址
第一個字元開始複製
第二個字元的‘\0‘也複製過去

第三個函數:strcmp()
格式:#include<string.h>
strcmp(字元數組1,字元數組2)
功能:函數傳回值相同位置不同字元的ASCII碼差值
返回的是一個數值

第四個函數:strlen()
格式:#include<string.h>
strlen(字元數組)
功能:求出字元數組的實際長度(不包括結束符)

6、C語言——數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.