华清远见学习总结
来华清已经学习快半个多月了,刚开始来的时候还是一个小白,我学习的专业是电子信息工程所以还有一点C语言的基础。但是当我学习了半个多月之后,我才发现我在学校学的语这里的简直是凤毛麟角。在这边可以学到很多我在学校没有学到的知识。对于我来说,已经升华了很多,我觉得可能或许在我学完的时候就发生了一个质的变化。我是在西安华清远这边学习的,上课的地方是位于高新区,在高新路咖啡街区创业大厦里面。楼下的咖啡厅挺多的,周围有好几个美食城环境还可以。因为我是一名大三学生,所以我是趁暑假的时候来这边学习的。这边的老师和工作人员都挺热情的,都会很热心的帮助我们。不过环境啥的都是次要的,最主要的是学习的内容。我在这边可以学到C语言、IO、数据结构、网络编程、C++、QT、STM32A、Linux驱动、Python人工智能等很多编程语言,还有很多实战项目。第一天学习的是安装软件功能的,第二天就开始正式学习C语言的知识。
下面就是我总结的关于c语言的一些知识和总结:
ASCii码表值:
c语言的基本机构:
#include<stdio.h>
Int main()
{
return 0;
}
数据的基本结构类型;
字符型:char 1字节
整数型:short 2字节 int 4字节 long 4/8字节
浮点型:float 4字节 double 8字节
常量:字符型常量,浮点型常量,整数型常量。
变量:局部变量和全局变量。
存储类型:auto、static、extern、register
auto:修饰局部变量,修饰的变量存储在栈区
Static:既可以修饰局部变量,也可以修饰全局变量,修饰的变量存储在静态区
Extern:只能修饰全局变量,修饰的变量存储在静态区
Register:只能修饰局部变量,修饰的变量存储在寄存器中
auto: 修饰局部变量,修饰的变量存储在栈区
Register:修饰局部变量,修饰的变量存储在寄存器中,建议用register修饰局部变量,提高运行速度,但是寄存器的内存空间很小,因此,当寄存器已满,存储在栈区!
Extern:
修饰全局变量,修饰的变量存储在静态区
一个程序可以由多个.c构成,但是有且只能有一个main函数
作用:告诉编译器,该变量已经在其他文件中定义过了。
Static:
即可以修饰局部变量,也可以修饰全局变量,修饰的变量存储在静态区,修饰的变量也叫做静态变量
修饰局部变量的作用:
当static修饰局部变量的时候:
- 延长局部变量的生命周期
- 如果局部变量没有初始化,他的值为0
- 如果初始化了,则只能初始化1次
修饰全局变量的作用:
作用:限制作用域,该变量只能在本文件内使用
运算符:单算移关与,异或逻条赋
算术运算符
+ - * / ++ -- %
注意:%(取余)不能让用于浮点数
++在前:先自加,在赋值
++在后:先赋值,在自加
三大结构:顺序结构,选择结构,循环结构。
顺序结构:按照一定的顺序去执行。
选择结构:if 语句:if{}
else
Switch语句:switch()
Case1
.....
deflaut..或者break结束
循环结构:for ;while; do while
for循环
for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:循环的起始条件
表达式2:循环的终止条件
表达式3:循环变量的变化
先执行表达式1。然后判断表达式2是否成立,如果成立,则执行循环体,然后执行表达式3,之后在次判断表达式2是否成立,以此反复,直到表达式2为假,终止循环
While(表达式)
{
循环体;
}
判断表达式的值是否成立,如果成立,则执行循环体,否则,跳出循环!
do
{
循环体;
}while(表达式);
先执行循环体,然后判断表达式是否成立,如果成立,继续执行循环体,反之,跳出循环!
数组:一组数据类型相同的元素的集合
特点:1.数据类型相同 2.地址连续
冒泡排序:从左到右,俩俩依次比较,如果前一个比后一个大,交换位置,否则不变!、
字符串的输入函数:gets(数组名);
功能:将键盘接收到的字符串存放到数组中,并且再末尾自动添加’\0’
注意:不会进行越界检测,所以输入的时候不用越界
字符串的输出函数:puts(数组名);
功能:将数组的内容输出打印到终端,并且自动添加换行
注意:遇到’\0’结束
Scanf和gets的区别:
gets以回车作为结束符,但是scanf以回车,tab,空格作为结束符
缓存区:
gets:当完成字符串的输入后,会自动清空缓冲区的内容
Scanf:当完成字符串的输入后,缓冲区会遗留空格,回车,tab
注意:
gets首先会检测缓冲区是否有内容,如果有直接拿来使用,否则输入
Scanf是标准的输入函数,只能通过键入方式
Printf和puts区别
Puts会自动添加换行,printf不会
库函数:printf scanf strlen
引入头文件:
#include<stdio.h>
#include<string.h>
自定义函数:
存储类型 数据类型 函数名(形式参数列表);
{
函数体;
返回值;
}
存储类型:auto,static,extern,register
数据类型:返回值的数据类型
函数名:见名知意
形式参数列表:要实现的功能所需要的参数,需要调用者自己传入(1.需要几个2.每个参数的数据类型)
函数体:具体实现的功能
返回值:如果没有返回值,可以省略,不需要写return,数据类型 void,如果有,有且仅有一个
传参:
函数名(实际参数列表);
- 需要将实参的值传递给形参,实参的个数和数据类型必须和形参保持一致
- 实参可以是变量,常量,表达式,必须是一个确定的值
- 实参和形参是俩快独立的内存空间
- 传参实际上是将实参的值拷贝给了形参
- 形参是局部变量,在函数调用的时候被定义,函数调用结束,释放空间
指针:
指针是一种数据类型,是一种保存地址的数据类型。
int a;//int:用来保存整型数的数据类型
char b;//char:用来保存字符的数据类型
float c;//float:用来保存浮点型数的数据类型
指针 d;//指针:用来保存地址的数据类型
毕竟大家都是花钱来这里学习的,所以学习氛围都挺不错的,大家都会积极学习、讨论、探讨。老师也会很热心地帮助我们解决问题。我觉得比较好的一点是每天的晚自习,然后每天梳理白天所学过的知识,处理不会的内容,也可以预习第二天的内容。刚来的时间也不是很长,也就半个月,所以我大概的感受就是这些。感觉还是一个蛮不错的机构,后续还有什么学习到的内容和感受,我会继续和大家分享。