C语言学习笔记1
C语言学习笔记记录
main函数,作为程序的入口,只有一个。
基本的数据类型: 整型 int
实型 float / double
字符型 char //用来修饰 变量, 变量即程序运行过程中可以改变的量。
变量的命名规则: 1.以字母、下划线开头、中间可以包含数字,但是不能以数字开头
2.可以使用美元符号开头($),但是不建议
3.见名知意
4.不可使用系统保留字
变量的赋值方式: 1.直接赋值//int a = 10; int b;
2.由变量赋值 //b = 10;
3.通过控制台赋值 //#define PI 3.14
关于 i++ 和 --i 的区别: ++i 为i先自加1在运行,i-- 为先运行在自加1
算术运算符:+,-, *, /, ++, --;
赋值运算符:= ,+= ,-=,*=,/=,%=;
C语言中有一个 bool 类型,此类型在 stdbool.h中 :bool类型有两种取值, true 或 false,布尔类型本质上也是整型。//true表示1,false表示0
对于关系运算符组成的表达式来说,其结果也是布尔类型
关系运算符: 对于逻辑与,前面的条件不满足,后面的条件不执行;
对于逻辑或,前面的条件满足,后面的条件不执行;
三目运算符: int c = a>b?a:b;//把最大值赋给c
强制类型转换: 例: int n1 = 3;
int n2 =4;
1.隐式转换:int a = n1 /n2;
2.显示转换:int a = (int)(n1 / n2);
运算符的优先级: 算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
输出语句: printf("输出内容\n");//\n为换行符
输入语句: scanf("%d",&x);//%d表示整型占位,也有实型占位%f,字符型占位%c,&x表示将输入的数存入x中
当输出实型占位的时候,%.2f表示输出的数保留2位小数点
sizeof()运算符:能够直接确定编译器中任何数据类型或变量所占用的字节数,使用方法为 int a = sizeof(int);
条件分支结构: if 和 switch 语句
if语句使用:
1.当if语句条件满足时,执行if语句中的语句块,否则不执行if语句
2.if..else分支语句使用:当if语句条件满足时,else语句不运行;当if语句条件不满足时,运行else语句
3.if..else if..else语句使用:当if语句条件满足时,运行if语句,其他程序
switch语句使用:1.switch的分支结构为:
switch(整型表达式){
case 数值1:
语句;
break;
case 数值2;
语句;
break;
...
default:
语句;
break;
}
2.判断整形表达式中的数值,当它满足case数值中的其中1个时执行该语句块,否则执行default中的语句,需要注意switch中的整形表达式,如果该表达式产生的值不少整型,将导致错误。
break 和 continue:
break 表示终止本层循环;
continue表示 终止本次循环,进入下次循环
3种循环结构: do while 循环、while循环、for循环
do while 循环:先循环一次,再执行循环条件,如果循环条件为真,则继续执行循环体,直到循环条件为假时,则跳出循环;
while 循环:先判断循环条件,当循环条件为真,则执行循环体,否则不执行循环体,与 do while 循环不同的是do while循环无论循环条件真假,至少执行一次循环体;
for 循环:for循环形式为: for(初始化语句;判断语句;改变语句){ 循环语句; }for循环运行时,首先执行初始化语句,然后执行判断语句,如果为真则进行循环,循环完成后执行改变语句,再继续判断语句的真假,若为真则继续循环,否则跳出循环。简单来说就是:1.初始值 2.判断条件 3.自增或自减 4.循环体 //初始化语句只执行一次就不再执行
三种循环结构可以相互转换
在进行循环嵌套时需要注意花括号以及分号的使用
枚举:就是说声明一个集合,再利用该集合来定义一个整型,该整型的值只能取集合里的值
此时 enum weeks x; 即表示用枚举定义了一个值x,而x的值只能够是weeks集合里的值;
在enum weeks里,假如没有定义数值,则默认为集合里第一项的值为0,然后每一项依次加1,若第二项的值定义为10,则第一项的值为0,第二项为10,第三项为11,以此类推
枚举有2中声明方法:第一种为关键字enum 集合名{数值1,数值2,... 数值n}; /* 分号在花括号外面 */ 如 enum weeks{a,b,c,d,,f,g};
第二种为 typedef enum{ a,b,c,d,e,f,g} weeks;
/t 表示水平制表 \n 表示换行
常量:不能改变的值称为常量,如1 ,2, 3,;
可以通过关键字const将一个变量变为常量,如:const int i = 10;
宏:除了可以使用关键字const来定义常量以外还可以使用宏定义常量
使用方法为#define PI 3.14 //此处PI为定义的常量名称,此后代码中所有的PI都会被3.14替换
全局变量以及局部变量:全局变量指整个程序中都可以使用,而局部变量至少在定义它的那个{}里可用
对于auto类型的局部变量,出了函数以后不能使用
对于static类型的局部变量,能够在程序运行期间一直保持其最后一次被改变的值
自定义函数:即首先定义一个函数,然后在程序中调用这个函数
函数定义有4种类型:1.有返回值有参数类型 int hanshu1(int a,intb) { int max = a; return b;}
2.无返回值无参数类型 void hanshu2() { printf("无返回值无参数\n"); }
3.有返回值无参数类型 int hanshu3() { int max = 0; return max; }
4.无返回值有参数类型 void hanshu4(int max) { printf("max = %d'n",max); }
函数,可以实现代码的重用;简洁代码;
函数的声明:想要自定义一个函数,首先得先声明有这个函数,不然编译器编译到自定义函数的时候不知道这个函数是什么,就会出错
如果要定义一个整型函数如 int hanshu(int a,int b),那么就需要在main函数的前面,将程序需要用到的函数声明或定义出来
函数的声明格式:int hanshu(int a,int b); //需要注意函数的声明需要加分号
形参和实参:1.形参(形式参数),在定义函数的时候使用,并且在整个函数内部可以使用,除了函数以后不能使用//形参:变量、数组
2.实参(实际参数),在调用函数的时候使用,通过实际参数,将数据传递给形式参数,然后再经由形式参数传递给函数//实参:同类型的常量、变量、数组元素、表达式、数组
需要注意的是如果在函数中对形参做出改变,那么在函数执行完毕后实参的值也不会发生改变,因为在函数内部所操作的都是实参的副本。
C程序源代码格式的一般情况:
预编译语句
宏定义常量
函数的声明
main函数
函数的定义
函数的递归:简单来说就是在函数里调用函数本身,例如求阶乘,有两种方法,递归以及迭代。递归代码简单许多,但系统开销要比迭代大,所以通常尽量用迭代解决问题。
- C语言学习笔记:数组
- C语言学习笔记22——数组参数和指针参数
- C语言学习笔记8---预处理
- c语言学习笔记6.18下午
- c语言学习笔记24之内存
- C语言学习及应用笔记之六:C语言extern关键字及其使用
- C语言学习笔记--动态库和静态库的使用
- 【学习笔记】【C语言】流程控制
- C语言学习笔记之指针
- 算法竞赛入门经典-学习笔记1(c语言)
- c语言学习笔记9之switch语句
- c语言学习笔记二十一
- iOS开发学习笔记 2-8 C语言部分 联合 枚举 结构体
- 【学习笔记】【C语言】结构体和函数
- C语言学习笔记(15指针)
- c语言学习笔记十六
- 【学习笔记】【C语言】标识符
- C语言学习笔记 typedef用法
- 【学习笔记】【C语言】循环结构-do while
- 学习笔记6-C语言内存管理+构造类型