1.數組:數組是若干個相同類型數據的集合。
定義:類型名 數組名[數組長度] eg:int num[10]
數組元素是由低到高連續存放的 eg:357 低--->高 3 5 7
2.局部變量與全局變量的定義域聲明
int num[10];
a.作為全局變量,編譯器會將聲明自動提升為定義。 此時num中的10個元素為0
b.作為局部變量,編譯器只給其打一個標示,並不分配空間。此時num中的10個元素為任意值
int num[10]={1,2,3};
a.不論作為全局變量與作為局部變量,都已分配空間
此時num中的10個元素為1、2、3、0、0、0、0、0、0、0、0
b.若初始化元素的個數小於數組長度,除了被指定的值外,數組的其他元素的值為0
3.數組定義時的[]與數組元素引用時的[]含義不同
eg:int num[10] 定義時:int[10]構成了變量num類型名
引用時:num[9]中[]表示取下標運算符
4.數組下標表示首地址向後偏移的個數,故,數組首個元素下標為0
數組名稱不能放在賦值符的左側,數組不可以整體賦值,因為數組名是個常量,不可以作為左值
數組可以作為參數,但不能作為返回值
5.C語言中沒有“字符串”類型,若想存儲字符串,需用字符數組
而字符串必然以'\0'結尾(而不是'0'),否則造成安全隱患
同樣,對於字符數組(字符串),也不可以整體訪問
6.全局符號
a.全局變量:定義:int a=10; 存放在data段 新開闢一塊內存空間
聲明 int a; 存放在bss段 不開闢內存空間,只打標誌
b.全局函數:定義:有函數體,只定義不聲明,編譯器會自動添加一個隱私聲明
聲明:無函數體
7.函數聲明時 eg:int add(int,int);即可
但若寫成int add(int a,int b);而定義時 int add(int c,int d){}亦可
故,函數聲明時,不必寫出形參名,因為形參名編譯器是不會記錄的