一、循环
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)循环嵌套的使用