·DAY_1 C语言数据类型
#import
导入框架,框架下包含了很多方法以及函数
main()
主函数:程序的出口和入口
一、数据类型
数据类型 所占字节数 英文
字符型 1 char
整型 4 int
长整型 4/8 long
短整型 2 short
单精度浮点型 4 float
双精度浮点型 8 double
long所占的字节数跟操作系统位数有关,32位占4个字节,64位占8个字节。
字节数:所能表示的最大数,最小数范围不一样
二、常量,变量
常量:程序运行期间值不能被改变
变量:程序运行期间值能够被改变。
是一个容器(存储区域),值就是容器里面的内容。
变量的定义
语法:变量类型 变量名 = 初值;
定义一个整型变量:int a = 0;
定义一个浮点型变量:float b = 1.01;
定义一个字符型变量:char c = ‘a’;
打印输出
printf(“%d,%f,%c”,a,b,c);
变量名的命名规范:
1、在同一个作用域内不能重命名
2、由数字,字母,下划线组成,但是不能以数字开头
3、见名知意
4、不能与系统保留字同名
三、运算符
1、赋值运算符 =
2、算术运算符
+(加),-(减),*(乘);
/(除,取整,除数不能为0);
%(取余,取余符号两边都为整数)
++(自增),- -(自减)
3、复合运算符
+=,-=,*=,/=,%=
a += 1相当于a = a+1
a -= 1 相当于a = a-1
a *= 2 相当于a = a*2
a /= 2 相当于a = a/2
a %= 2 相当于a = a%2
四、表达式,语句
语句以分号结尾
表达式:由常量,变量,运算符组成的式子就是表达式(不以分号结尾),其中两项可以为空
五、格式化输入输出函数
输出函数语法格式:
printf(“格式串”,表达式);
格式串由转换字符和字符串组成
转换符:整型 %d
短整型 %hd
长整型 %ld
浮点型 %f
字符型 %c
字符串 %s
去掉小数点后无效0 %g
地址 %p
所占内存空间 %lu
转义字符
换行 :\n
打印% :%%
打印\ : \\
格式化输入函数
scanf(“格式串”,&表达式);
在同一个scanf内输入两个整型数,需要用空格或者逗号隔开。
格式串里面不建议加任何字符或者字符串
在同一个scanf内输入两个字符,不需要隔开
·DAY_2 C语言分支结构
一、布尔类型
bool类型:是一种非真即假(非0即真)的数据类型(不是YES,就是NO)
BOOL y = yes;
BOOL n = no;
二、关系运算符
>(大于),<(小于),>=(大于等于),<=(小于等于),!=(不等于),==(等于)
三、逻辑运算符
&&(与) 一假即假,全真即真
||(或) 一真即真,全假即假
!(非) 取反
逻辑与的短路情况
将容易为假的结果放在&&符号的左侧,效率更高
逻辑或的短路情况
将容易为真的结果放在||符号的左侧,执行效率更高
四、分支结构
if语句一般用来表示一种情况
语法格式:
if (表达式){
表达式为真执行的代码;
}
if else语句适用于两种情况的判断
语法格式:
if (表达式){
表达式为真执行此代码1;
}else{
表达式为假执行此代码2;
}
if级联式适用于多种(大于2)情况的判断
语法格式:
if (表达式1){
表达式1为真执行此语句
}else if (表达式2){
表达式2为真执行此语句
}else{
表达式1和表达式2都为假,执行此语句
}
四、条件运算符
如果式1 > 式2为真,返回式3的值,否则返回式4的值
语法格式:
表达式1 > 表达式2 表达式3 : 表达式4;
五、switch case语句
语法格式
switch (整型表达式){
case 整型常量1:
如果表达式的值等于整型常量1,执行此语句1;
break;
case 整型常量2:
如果表达式的值等于整型常量2,执行此语句2;
default :
当表达式的值不等于上面任何一个常量值的时
候,执行此语句;
break;
}
break用来跳出switch语句
switch case和if else的适用环境有所区别:
switch case用于某个点的判断,更加清晰明了
if else用于某个分段的判断
六、枚举
关键字:enum
枚举:列举出所有的可能性情况
语法格式:
枚举类型关键字 枚举名{
枚举值1,
枚举值2,
……
};
枚举名可以省略
枚举值是具有符号名称的整型常量
第一个枚举值默认为0,依次递增
枚举值2设为100,不会改变之前的枚举值,但可以改变之后的枚举值
·DAY_3 C语言循环结构
循环结构定义:满足特定条件下,重复执行的语句(循环体)
一、for循环
语法格式:
for (变量的初始化; 循环条件; 循环增量) {
重复执行的语句(循环体);
}
二、随机数
产生一个随机数:[min max];
语法格式:arc4random() % (max - min + 1) + min;
三、break;continue
break用于switch语句,可以跳出switch语句。
break用在循环语句时,break后面的语句不会被执行,跳出本层循环,向下执行。
continue在循环中,continue后面的语句不会被执行,结束本次循环,向上执行。
四、循环嵌套
外层循环决定行数,内层循环决定具体实现
外层循环变化一次,内层循环变化n次(n由内部循环的循环条件决定)
五、while循环
语法格式:
while (循环条件){
循环体(重复执行的代码)
循环增量增加或减少
}
while循环通常用于不知道循环次数的情况下。
六、do while循环
语法格式:
do {
循环体(重复执行的代码语句)
}while (循环条件);
无论满不满足循环条件,都能执行一次
·DAY_4 C语言数组
一、数组
定义:相同类型的数据的集合,属于构造类型
定义语法:
数据类型 数组名[常量] = {初值1,初值2,......};
定义一个整型数组
第一种定义语法
int arr[4] = {1,2,3,4};
中括号里的4代表数组里面存放的整型数据个数为4个
第二种定义语法
int arr[4] = {1};
当初值个数少于中括号给定的元素个数,那么默认为0
第三种定义语法
int arr[] = {11,22,33};
当中括号内不给定元素个数,那么元素个数和初值个数保持一致,上面数组元素个数为3
二、数组元素的访问
访问语法:数组名[下标];
下标从0开始
可以用循环遍历数组中的每个元素
运算符:sizeof(计算所占内存空间)
格式 sizeof(表达式or类型)
求数组元素的个数
数组元素个数 = 数组所占的内存空间 / 数组中一个元素所占的内存空间
数组名是一个常量地址,数组首元素的地址
三、数组排序
冒泡排序
冒泡排序的核心思想:相邻的两个数两两比较,每一趟比较产生一个最大数,下一趟不参与比较。因此随着比较趟数的增加,每一趟比较次数减少。
语法格式
外层循环控制趟数
for(int i = 0;i < count-1;i++){
内层循环控制次数
for(int j = 0;j < count -i-1;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
四、字符串数组
定义字符串数组第一种格式:
char arr[] = {‘a’,’d’,’d’,’c’,’c’};
第二种格式:
char arr[] = “addcc”;