一、雙精度輸入輸出
在使用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...