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

2021-10-04 23:08:14 字數 4538 閱讀 9342

本博文為半摘記性質。函式的定義以及呼叫

一維陣列

二維陣列

字元陣列與字串

函式設計包括函式頭和函式體,函式體由說明部分和執行部分組成。

函式名為函式的首位址。

函式的定義與呼叫

函式的定義形式:

型別名 函式名(型別名 形式引數1,型別名 形式引數2,...

)

形式引數名在同一函式中唯一,可與其它函式變數同名。

函式的返回值要和函式內部返回值一致。

函式型別名指函式返回值的型別名,可省,預設函式返回值的型別為int型別;若無函式值返回,必須把函式定義為void型別。

函式值通過return語句返回乙個值

return 表示式;
void型別的函式可省略return語句,這時程式的流程就一直執行到函式末尾,其後返回主調函式;當有return語句時,其作用只在使流程返回到主調函式,其格式為:

return

;

return與exit的區別

exit函式用於退出應用程式,並將應用程式的乙個狀態返回給os, 0 為正常退出 ,非0 為非正常退出。

void

exit

(int status)

;

函式宣告

函式在呼叫前要宣告,形式:

型別名 函式名(型別名 形式引數1,型別名 形式引數2,…);

函式呼叫

函式呼叫形式:

函式名(實參列表);

函式之間可相互呼叫,也可呼叫自身(遞迴呼叫)。

在函式中定義的變數為區域性變數,在函式外定義的變數為外部變數(全域性變數)。當區域性變數與全域性變數同名時,在區域性變數的作用範圍內,全域性變數失效。

一維陣列

語法形式:

型別說明符 陣列名[整型常量表示式],…;

c語言只能單個引用陣列元素而不能一次引用整個陣列。下標只能為整型常量或整型表示式,取值範圍從0到(元素個數-1)。

陣列引用形式:

陣列名[下標];

初始化賦值形式:

型別說明符 陣列名[整型常量表示式]=;

一維陣列只能在宣告時進行多個元素的初始化,在程式中只能對單個元素進行賦值。

陣列名表示首位址。

陣列的大小可省,此時陣列的大小則為初始化時元素的個數。

double balance=

;

二維陣列

定義形式:

資料型別 陣列名 [常量表示式1][常量表示式2];

表示式1為陣列元素行數,表示式2為陣列元素列數。

宣告陣列時只有在對陣列進行分行初始化全部賦值時才可以省略行常量,列行量不可省。

陣列引用形式:

陣列名[行下標][列下標];

二維陣列可按行分段賦值

int a[3]

[4]=

};

按行連續賦值

int a[3]

[4]=

;

當某行一對花括號內的初值個數少於該行中元素的個數時,編譯器將自動給改行後面的元素補初值0。

二維陣列實際上就是元素為一維陣列的陣列

陣列作為函式引數

陣列可以作為函式的引數使用,進行資料傳送。

陣列作為函式引數有兩種形式:

把元素作為實參使用。

把陣列名作為函式的形參和實參使用。

(1)陣列元素作為函式實參

它作為函式實參使用與普通變數是完全相同的,在發生函式呼叫時,把作為實參的陣列元素的值傳遞給形參,實現單向的值傳遞。

void

test

(int b)

;//函式宣告

void

main()

;int i;

for(i=

0;i<=

10;i++

)printf

("\n");

}

(2)陣列名作為函式引數

陣列名作為函式引數時所進行的傳遞只是陣列位址的傳遞,即實參與形參有一段共用的記憶體空間。

字元陣列和字串

c語言中沒有字串型別,字串通常用字元陣列表示。

定義形式:

char 字元陣列名[元素個數]

;//一維

char 字元陣列名[元素個數]

[元素個數]

;//二維

一維字元陣列可以存乙個字串,二維字元陣列可以存多個字串;二維字元陣列可以用指標陣列代替。

在表示字串常量時不需在其末尾人工加入(\0),編譯器會自動新增。

如果花括號中提供的字元個數小於陣列長度,其餘元素自動定位空字元(\0)。

如果花括號中提供的字元個數等於陣列長度,在定義時可省略陣列長度初始化時一般都採用這種形式

char 字元陣列名=

;//一維

char 字元陣列名[

][不可省]=;

//二維

只能在字元陣列定義時為字串賦值,這是因為陣列在程式中只能對單個元素進行賦值。

字元陣列≠字串。

字元陣列的元素個數比字串的長度多一,也就是\0計算在內。 ——

常採用字串處理函式處理字串,使用前需包含標頭檔案#include

1.字串複製函式strcpy

strcpy

(s1, s2)

;//複製字串 s2 到字串 s1

2.字串連線函式strcat

strcat:string catenate

strcat

(s1, s2)

;//連線字串 s2 到字串 s1 的末尾。

3.求字串長度函式strlen

strlen

(s1)

;//返回字串 s1 的長度

4.字串比較函式strcmp

strcmp

(s1, s2)

;//如果 s1 和 s2 是相同的,則返回 0;如果 s1s2 則返回大於 0

以下兩個函式返回指標

5.字串查詢函式strstr

strstr

(s1, s2)

;//返回乙個指標,指向字串 s1 中字串 s2 的第一次出現的位置

6.字串中字元位置查詢函式strchr

strchr

(s1, ch)

;//返回乙個指標,指向字串 s1 中字元 ch 的第一次出現的位置

——

除了採用scanf&printf函式整體輸入輸出字串,還可以使用gets()、puts()函式進行輸入輸出。

char str[

100]

;gets

( str )

;//輸入字串

puts

( str )

;//輸出字串

——

輸入、輸出單個字元可採用getchar() & putchar() 函式:

int c;

c =getchar()

;//輸入單個字元

putchar

( c )

;//輸出單個字元

指標與函式

指標函式

陣列與函式

陣列元素作為函式引數(見本文)

陣列名作為函式引數(見本文)

陣列元素指標作為函式引數

指標作為函式引數

指標陣列作為函式引數

數值陣列(見本文)

字元陣列(見本文)

指標陣列

結構陣列

c語言指標與字元陣列

歡迎關注awp資訊 我們所說的字串就是字元陣列的一種,就如我們常見的 hello world 字串的使用在c語言中也是非常重要的,常常會遇到一些操作,如字串的修改 拷貝 字串長度等,在物聯網的應用中也尤為突出,物聯網應用中所用的模組,大多是需要使用at指令的,這就需要對字串的操作。在字元陣列或字串的...

C語言字串與字元陣列

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

C語言 陣列與指標 字元與字串

1 字元與字串 char c a 而不能寫出char c a 字元變數用單引號 而字串用雙引號。2 字元陣列與字元指標的初始化 char s 10 p strcpy s,hello word n 或者p hello word n 而不能用s hello word n y因s陣列名表示陣列的首位址是個...