C語言陣列與字串

2021-09-19 04:27:53 字數 2078 閱讀 9228

一、c語言陣列

1.c 語言支援陣列資料結構,它可以儲存乙個固定大小的相同型別元素的順序集合。陣列是用來儲存一系列資料,但它往往被認為是一系列相同型別的變數。陣列可以用一些基本的資料型別來定義,int,double,float...,比如,定義乙個整形陣列  int a[10],a為陣列名,a陣列成員共有10個,訪問陣列可以運用下標訪問,陣列成員依次為a[0]........a[9]。

2.陣列的初始化

比如int a[5]=;大括號 之間的值的數目不能大於我們在陣列宣告時在方括號 [ ] 中指定的元素數目。如果您省略掉了陣列的大小,陣列的大小則為初始化時元素的個數。int a=;這時候計算機會計算出里的數值。

3.陣列的所有資料都是由連續的記憶體位置組成,每個陣列成員都有一塊記憶體,它們的大小取決於陣列型別,比如,開始定義的int型陣列每個陣列成員所佔記憶體的大小都為4個byte,即整形陣列a[10]所佔的記憶體的大小為40byte。

4.陣列在處理一些同種資料型別是就比較方便,比如處理乙個班所有學生的一項成績,這時候用陣列就比較方便,下面是對一組資料的排序

5.c語言存在多維陣列,上面說的都是一維陣列,多維陣列可以這樣定義,比如定義二維整形陣列a[3][3],初始化:,,};基本上陣列通過迴圈來進行定義比較方便。多維陣列的訪問也是用過下標來進行。比如下面:

二、字串

1.在 c 語言中,由但撇號括起來的單個字元叫字元常量,例如'a','b','+','%'...,由雙撇號括起來的叫字串常量,例如"abc","你好",而字串實際上是使用null字元 '\0' 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面宣告和初始化乙個"hello"的字串,由於在陣列的末尾儲存了空字元,所以字元陣列的大小比字元"hello"的字元數多乙個。

char a[6]=;
也可以這樣初始化:c編譯器會在字串初始化時自動把'\0'放在字串的末尾。

char a[6]="hello";
乙個字元在記憶體中佔乙個位元組,字串裡的記憶體也是連續的,由於字串末尾會有'\0',所以計算字串的記憶體大小時會多乙個位元組,即上面的字串a佔6個位元組。

2.c語言中有一些操作字串的函式

這些函式都包含在string.h的標頭檔案中

strcpy(s1,s2)//複製字串s2到字串s1

strcat(s1,s2)//連線字串s2到字串s1的末尾,注意字串s1的長度要足夠大來連線字串s2

strcmp(s1,s2)//用於比較兩個字串,若s1=s2,則返回0,若s1>s2,則返回》0,若s1strlen(s1)//返回字串s1的長度

具體例子如下:

3.sizeof()與strlen()的區別

strlen是乙個函式,它計算的是字串的長度,以'\0'作為長度判斷的標誌,而sizeof是乙個運算操作符,計算的是變數的大小,不受'\0'的影響。

4.'a'與"a"的區別在於' '裡只能放單個字元,而" "表示乙個字串即'a'+'\0'。字串在如下的方式初始化時需要注意結尾必須加'\0',不然就會程式就會出現錯誤,而用第二種方式不需要加'\0'。

char a=;
char a=;

C語言字串與字元陣列

通俗的講字串是由一串字元組成,例如 hello world n 即是乙個字串。c 語言中沒有真正意義上的字串型別,字串由字元陣列或者字串常量來表示。const char p hello world n 上述示例中 hello world n 即是乙個字串常量,該常量由乙個字元型別指標儲存其實際位址。...

c語言陣列與字串

二維陣列 回想一維陣列定義方式 型別修飾符 陣列名 元素個數 int array 5 建立乙個二維陣列 型別修飾符陣列名 包含幾個小陣列 每個小陣列有多少個元素 初始值如何寫?int array 3 4 一維陣列可以省略元素個數,二維資料只能省略第一維 第二種初始值寫法 int array 3 4 ...

C語言 函式與陣列 字元陣列與字串

本博文為半摘記性質。函式的定義以及呼叫 一維陣列 二維陣列 字元陣列與字串 函式設計包括函式頭和函式體,函式體由說明部分和執行部分組成。函式名為函式的首位址。函式的定義與呼叫 函式的定義形式 型別名 函式名 型別名 形式引數1,型別名 形式引數2,形式引數名在同一函式中唯一,可與其它函式變數同名。函...