控制语句:
条件判断:if、if else
循环语句:while
转向语句:break :跳出所有循环 执行循环后边的语句
continune:结束当前循环,不执行continune 后的语句。继续下一次循环
1.switch 开关语句
简化if语句的多层嵌套
2.for 循环语句
for(表达式1;表达式2;表达式3)
语句;
表达式1:循环变量赋初值,for(int a = 0;xxxx;xxxx;)
表达式2:循环条件,一般为关系表达式,或逻辑表达式
表达式3:修改循环变量的值,一般为赋值语句
3.数组:有一定顺序关系的相同数据类型的变量集合
数组属于构造类型
数组元素可以是基本数据类型或构造类型
数组可分为数值数组、字符数组、指针数组、结构体数组等
C语言中使用数组前必须先定义
<存储类型><数据类型><数组名>[<常量表达式>];
存储类型:auto register static extern
数据类型:数组元素的数据类型
数组名:数组标识符
常量表达式:数组元素的个数或数组的长度
数组初始化:
全部初始化---> int a[5] = {1,2,3,4,5};
部分初始化---> int a[10] = {1,2,3,4,5};其余的元素自动赋值为0
数组全部赋值---> int a[] = {1,2,3,4,5};全部赋值是可以省略下标常量的
编译器根据初始化列表统计我们的数组元素个数
数组全部初始化为0---> int a[10]={0};
数组内存的分配:
数组分配的是连续空间,根据单个元素所占空间进行分配
数组下标是从0开始的 如数组的常量表达式为n 则最后一个元素下标为 n-1
访问数组元素时不允许超出数组下标范围 很危险 访问越界
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p = a;
for(int i=0;i<10;i++){
printf("%d :%p
",a[i],p++);
}
return 0;
}
练习:冒泡排序:
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a[10]={99,22,33,55,77,11,66,44,88,111};
int i,j;
for(i=0;i<10;i++){
for(j=0;j<9-i;j++){
if(a[j]<a[j+1]){
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for(i=0;i<10;i++){
printf("%d
",a[i]);
}
return 0;
}
4.字符串
字符串是以‘