C語言基礎知識(三)(陣列)

2021-10-08 16:11:56 字數 1479 閱讀 5845

一、雙精度輸入輸出

在使用scanf 函式輸入雙精度實型資料的時候,應當使用(%lf 進行宣告),即scanf("%lf", &a);

在輸出的時候可以用"%f"、"%lf" 或 "%m.nf"

二、陣列定義的長度

陣列在定義的時候語法:型別符號 陣列名[常量表示式],例如:int a[20];

但是如果在被呼叫的函式(不包含主函式)中定義陣列,其長度是可以是變數或者非常量表示式的。

例如:

函式

void func(int n)

三、字元陣列的初始化、賦值和結束符'\0'

在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個字串。字串總是以'\0'作為串的結束符。因此當把乙個字

串存入乙個陣列時,也把結束符 '\0'存入陣列,並以此作為該字串是否結束的標誌。有了'\0'標誌後,就不必再用字元陣列的長

度來判斷字串的長度了。(一般要多開乙個空間存 \0)

例如:

一種:

char s1[2] = ;

實際存的為:'n' 'i'

一般要多開乙個空間存'\0'

char s1[3] = ;

實際存的為:'n' 'i' '\0'

另一種賦值:

char s2[3];

s2[0] = ;

s2[1] = ;

實際存的為:'n' 'i'

賦值問題:

字元陣列的整體賦值只能在字元陣列初始化時使用,不能用於字元陣列的賦值,

字元陣列的賦值只能對其元素一一賦值,下面的賦值方法是錯誤的。

c語言並沒有提供可以直接操作字串的運算子;「=」可以用於其他資料型別的賦值,

但是不可以直接給字串賦值

char str;

字串長度問題:

strlen函式求得的字串長度是從字串第乙個元素到第乙個'\0'之間元素的個數。

遇到'\0'就終止,因而返回的結果是第乙個'\0'前字元元素的個數。(不包含\0)

sizeof求得的結果是儲存該字串的變數占用的空間大小,因而一定會包括'\0'.(包含\0)

若'\0'後還有空餘的空間,也會包含到結果裡面。也就是說sizeof包含陣列中所有的字元,因而它返回的是儲存字串的變數所占用的記憶體空間大小。

四、陣列的輸入輸出

1、使用%c逐字輸入輸出。

2、使用%s將整個字串一次輸出輸入。

定義char陣列

char a[10];

scanf("%s", a); 輸入china

printf("%s\n", a); 一次性輸出,知道遇到第乙個空格或\0

C語言基礎知識學習(陣列)

c語言基礎知識學習之陣列 首先,陣列是 同種型別 元素的集合。一 一維陣列 1.一維陣列定義 int a 10 這樣我們便定義了乙個陣列a,它分配10個 int型別空間。2.陣列的初始化 我們可以在定義乙個陣列的同時對它進行初始化操作,例如 int a 10 我們也可以只對陣列的部分元素進行初始化操...

C語言基礎知識之三

1.時間複雜度 t n o f n 只保留最高項 不要係數 1 o f n o 1 2 for 1層迴圈 o f n o n 3 for 2層迴圈,o f n o n 2 4 for 3層迴圈,o f n o n 3 5 for int i 2 i n i for int j 2 j i 1 j 共...

C語言基礎知識學習(三)

c語言基礎知識學習之程式結構 一 程式結構 程式結構 可以分為 順序 分支和迴圈 1分支結構 if else 1 if 的使用形式 如果條件為真執行語句塊1,否則跳過。if 常量 變數 表示式 2 if else 形式如果條件為真執行語句塊1,為假執行語句塊2。if 常量 變數 表示式 else 3...