一、循環
1、補充:
else 總是上層與最近的配對使用。
分支結構:
if else
switch case
2、循環
(1)for(表達式1;表達式2;表達式3)
執行順序:
a、表達式1
b、表達式2 若成立,則執行表達式c,不成立執行e
c、循環體,即{}里的內容,
d、表達式3,執行B
e、結束循環
二、數組
1、數組的定義
DataType ArrayName[size];
(1) DataType:數據類型,int,float,double,char等等
Arrayname:數組名
size:數組的大小或數組下標,必須是常亮表達式。
[]:下標運算符
下標是從0開始,到size-1
example:
int arr[5]; //定義一個數組大小為5,其中每個元素都是int
arr:數組名
5 :數組大小即數組元素類型
int:數組的元素類型
(2)數組的初始化
int arr [3] = {1,2,3};
int arr1[3] = {1,3};
int arr2[3] = {1};
int arr3[3] = {[2]=3};//不建議使用
int arr4[] ={1,2,3,4};//不建議
int arr5[] ={};//error
int num=0;
int num1;
num1=2;
int arr[5];
arr[5]={1,2,3,4,5}; //不正確,無法賦值
數組若要初始化,必須自定義的同時初始化,不能先定義,后初始化。
/*以下方法不可以,編譯器報錯
int n=6;
int arr[n];
int m;
scanf("%d",&m);
int buf[m]; */
#define M 5 //用M代替5,宏定義
#define 大寫字母 表達式 //用“大寫字母”代替“表達式”
(3)數組元素的訪問
使用下標形式;
int arr[5]
arr[2]:訪問第二個元素
arr[4]:訪問第5個元素
遍歷數組元素:逐個訪問
(4)數組的存儲
數組也是一種數據結構,數組中的元素順序存儲
數組中每個元素的類型都相同
(5)數組地址問題
arr :0x000000
&arr[0] : 0x000000
&arr : 0x000000
arr+1 : 0x000004
&arr[0]+1 : 0x000004
&arr+1 : 0x000014
注釋:
arr :數組名也代表數組元素的首地址,即第一個元素的地址
&arr[0]:數組元素的首地址,即第一個元素的地址
&arr :數組的首地址
arr+1和&arr[0]+1:表達的意思一樣
地址偏移sizeof(arr[0])個字節
&arr+1:偏移量為sizeof(arr)個字節,地址偏移整個數組大小
(6)數組元素的賦值
char arr[16]={‘h’‘e’‘l’‘l’‘o’};
char buf[16]={‘hello’};//{ }可省略
(7)數組名不能和變量名重復
2.二維數組
DataType ArrayName[行下標][列下表]
二維數組定義時,行下標可以省略,列下標不可以省略。
(1)二維數組的初始化:
int arr [3][3]={1,2,3};
int arr1 [3][3]={{1,2,3},{4,5,6},{7,8,9}};
int arr2 [][3]={1,2,3,4,5}
2.注釋
(1)//.......單行注釋,可以獨占一行,也可以跟在執行語句之后的內容,不被編譯執行
規定:
注釋內容放在被注釋的上一行,或者同行行末
(2)/......./
注釋大段代碼,即注釋代碼塊
(3)
#if 0
....
#else
......
#endif
總結
需要加強的點:
(1)ASCII碼值的使用
(2)循環嵌套的使用