C语言基础知识综述
1,入门程序?
2.数据类型?
数据类型:
1.基本数据类型:
1.1.整数:int 4字节。
1.2.字符类型:char 1字节。
1.3.实数类型(浮点类型)
1.3.1.单精度类型:浮点4字节。
1.3.2.Double类型:双8字节。
2.结构类型:
2.1.枚举类型
2.2.数组类型
2.3.结构类型
2.4.***用户类型
3.指针类型:
4.空类型:
3.打印格式声明?
%d:十进制整数;
%c:单个字符;
%s:字符串;
%f:6位小数;
4.常数?
其值不变的量成为常数;
定义字符常量(注意没有下文;)
5.接线员?
5.1.算术运算符:+、-、*、/、%、++、-;++/-之前,先运算,后取值。++/,先值后运算;
5.2.赋值运算符:
5.3.关系运算符;
5.4.逻辑运算符;
5.5.三方运营商:
表达式1?表情2:表情3;
6.水仙花数计算?
输出所有三位数水仙花号。
所谓“水仙花数”是指一个三位数,其位数的立方和等于这个数。比如153是水仙花号,111+555+333。
7.打印正三角形*?
8.臭名昭著的goto语句?
很少使用
9.正式参与实参?
形参:形参是定义函数名和函数体时使用的参数,用来接收调用函数时传入的参数;
Argument: Argument是调用时传递的函数的参数。
函数的形参和实参具有以下特征:
参数仅在被调用时分配内存单元,并在调用结束时释放分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回到主音函数后,参数变量就不能再用了。
参数可以是常量、变量、表达式、函数等。无论是哪种量,在进行函数调用时都必须有确定的值,以便将这些值传递给形参。所以要事先用赋值等方法,得到实参数的确定值。
传递参数时,实参和形参在数量、类型、顺序上要严格一致,否则会出现类型不匹配的错误。
10.注意函数返回值?
注意:void函数可以有执行代码块,但是不能有返回值。另外,如果void函数中有return语句,只能结束函数。其格式为:返回;
11.递归?
12.可变存储类别!?
12.1.生命周期分割存储模式
根据变量的生命周期,C语言可以分为静态存储和动态存储。
静态存储模式:指程序运行时分配固定存储空间的模式。静态存储区存储的是整个程序执行过程中存在的变量,比如全局变量。
动态存储模式:指在程序运行过程中,根据需要动态分配存储空间的模式。存储在动态存储区的变量是根据程序运行的需要而建立和释放的,通常包括:函数参数;自动变量;调用函数时的现场保护和返回地址。
12.2.存储类型划分
C语言中有四类存储:自动、静态、寄存器和外部。
由关键字auto定义的变量是自动变量,可以省略auto。如果没有写auto,则隐式定义为“自动存储类别”,属于动态存储模式。
用static修饰的是静态变量。如果它是在函数内部定义的,则称为静态局部变量。如果在函数之外定义,则称为静态外部变量。
注意:静态局部变量属于静态存储的范畴,分配在静态存储区的存储单元在程序整个运行期间不会被释放;静态局部变量在编译时被赋予初始值,也就是说,它们只被赋予一次初始值;如果在定义局部变量时没有赋值初始值,那么对于静态局部变量,初始值会在编译时自动赋值为0(对于数值变量)或空字符(对于字符变量)。
为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,称为“寄存器变量”,用关键字register声明。
注意:只有局部自动变量和形参可以作为寄存器变量;计算机系统中寄存器的数量是有限的,所以不可能定义任何数量的寄存器变量。局部静态变量不能定义为寄存器变量。
用extern声明的变量是外部变量,外部变量的意义是函数可以调用在函数之后定义的变量。
13.内部函数外部函数!?
C语言中不能被其他源文件调用的函数称为内部函数,内部函数由静态关键字定义,所以也称为静态函数,形式为:
静态[数据类型]函数名([参数])
这里的Static是对函数作用域的限制,只能在所在的源文件中使用,所以相同函数名的内部函数出现在不同的文件中是没有问题的。
在C语言中,可以被其他源文件调用的函数称为外部函数,它们由extern关键字以如下形式定义:
外部[数据类型]函数名([参数])
c语言规定,当没有指定函数的作用域时,系统会默认认为是外部函数,所以需要定义外部函数时也可以省略extern。可以省略Extern14.数组数组:具有固定大小和一致数据类型的连续内存空间。数组的声明:数据类型数组名称[长度n]
数据类型数组名称[长度n]= {元素1,元素2,元素3,...};
数据类型数组名称[]= {元素1,元素2,元素3,...};
数字类类型数组名[长度n];数组名[0] =元素1;数组名[1] =元素2;.....注意:1和数组的下标都以0开头;
2.初始化数组时,数组中元素的数量不能大于声明的数组长度。
3.如果采用第一种初始化方法,当元素个数小于数组长度时,将冗余数组元素初始化为0;4.当数组声明后未初始化时,static和extern类型的数组元素初始化元素为0,auto类型的数组元素初始化值不确定。
15.数组遍历
数组的冒泡排序
冒泡排序的思想:将相邻的元素相互比较,将较大的数字放在后面,直到所有的数字都排序完毕。
字符串和数组
在C语言中,没有办法直接定义substring的数据类型。您需要使用一个数组来定义所需的字符串,格式如下:
char string name[length]= " string content ";
字符字符串名称[长度] = { '字符串1 ','字符串2 ',...,'字符串n ',' \ 0 ' };
注意:
[]中的长度可以省略;
第二种方式,最后一个元素必须是' \0 ',表示结束;
第二种方式不会写中文!;输出字符串时,使用:printf("%s ",字符数组名);或puts(字符数组名);
16.字符串函数?
Strlen(s):获取字符串的长度s;
Strcmp(s1,s2):比较字符串;比较时,字符串会被转换成ASCII码,然后进行比较。返回结果为0,表示s1和s2的ASCII码值相等。返回结果为1,表示s1大于s2的ASCII码,返回结果为-1,表示s 1小于s2的ACSII码。
Strcpy(s1,s2):字符串复制;S2将替换s1中的内容;
Strcat(s1,s2)拼接s1后面的S2;注意:s1的长度应该够了!
Atoi(s1)将字符串转换为整数!
17.
数据类型数组名称[常量表达式1]...[常量表达式n];
多维数组的初始化和一维数组类似,有两种:
数据类型数组名称[常量表达式1][常量表达式2]...[常量表达式n] = {{值1,...,值n},{值1,...值n},...,{值1,...,值。
数据类型数组名称[常量表达式1][常量表达式2]...[常量表达式n];数组名[下标1][下标2]...[下标n] =值;
多维数组初始化应注意以下事项:
当采用第一次初始化时,数组声明必须指定列的维度。因为系统会根据数组中的元素总数来分配空间,所以当元素总数和列的维数已知时,会直接计算出行程的维数;
使用第二次初始化时,数组声明必须指定行和列的维度。
18.多维数组的遍历?
使用嵌套循环
注意:多维数组的每个一维下标不能越界!
65438+
数组允许你定义可以存储相同类型数据项的变量。结构是C编程中另一种用户定义的可用数据类型,它允许您存储不同类型的数据项。
结构用于表示一条记录。假设您想要跟踪图书馆中图书的动态,您可能需要跟踪每本书的以下属性:
标题
作者
科目
图书ID
定义结构
为了定义结构,必须使用struct语句。struct语句定义了一个具有多个成员的新数据类型。struct语句的格式如下:
标记是一个结构标记。
Member-list是标准的变量定义,比如int I;或者其他有效的变量定义。
变量列表结构变量定义在结构的末尾,在最后一个分号之前,可以指定一个或多个结构变量。以下是图书结构的申报方式:
在正常情况下,必须至少有两个标记,成员列表和变量列表部分。以下是一些例子:
访问结构成员
为了访问一个结构的成员,我们使用成员访问操作符(。).成员访问操作符是结构变量名称和我们要访问的结构成员之间的句点。可以使用struct关键字定义结构类型的变量。下面的示例演示了结构的用法:
20.***带着尸体?
* * *对象是一种特殊的数据类型,它允许您在同一内存位置存储不同的数据类型。您可以定义一个包含多个成员的* * *主题,但任何时候都只能有一个成员有值。* * *主体提供了使用相同内存位置的有效方法。
21.指针?
22.文件读写?
写文件
读取文件
C语言与C++学习路线
23.排序算法?
十大经典排序算法(动态演示+代码)
24.搜索算法?
九种搜索算法
面试知识
C语言与C++面试知识总结
26.字处理
字符串操作的全面总结
27.C语言通用标准库解读
C语言通用标准库解读
28.C语言中最常用的贪婪算法
C语言中最常用的贪婪算法就这样被攻克了。
29.常见的C语言记忆错误及对策
C语言中常见的内存错误及其对策
30.c语言实现了面向对象的原则。
c语言实现了面向对象的原则。
31.C语言/C++内存管理
看完这篇文章你还能理解C语言/C++内存管理吗?
32.再谈C语言指针
再来说说指针:大哥给你扫清C指针的云。
c语言函数指针的回调函数
C语言指针详解(文末福利)
33.c语言预处理命令
长文本详解:C语言预处理命令
34.C语言的高效编程和代码优化
C语言的高效编程和代码优化
35.c语言结构
C语言的结构就这样被攻克了!值得收藏!
36.原码,补码,补码详解
原码,补码,补码详解
37.c语言宏定义
浅谈C语言中宏定义的使用
38.* * *在C语言中使用联合、枚举和大小端模式。
C语言中* * *的并集、枚举和大小端模式
C语言可以零基础入门,它的语法是很多高级编程语言的基础,比如Java、c++;+;它起着承上启下的作用。向上可以学习高级编程语言,向下可以学习计算机组成原理、操作系统等计算机基础知识。
书
个人认为第一本书《Aha C语言》文笔幽默,基础学习对培养兴趣很有好处。
《c程序设计语言》,机械工业出版社,Brian W. Kernighan/(美)Dennis M. Ritchie。C语言之父写的,入门经典书籍。
C Primer Plus,人民邮电出版社,斯蒂芬·普拉塔著。可以作为C语言参考书,也可以作为入门,内容循序渐进,可以锻炼编程思路。
《C与指针》对指针有了深刻的理解,看完之后,我再也不怕指针了。
正如《C陷阱与缺陷》这本书所说,“本书揭示的知识至少可以帮助你减少C代码和初级C++代码中90%的bug”,看完可以避免C语言开发中的一些坑。
在线课程
1,《郝斌C语言自学教程》
2、《程序设计导论-C语言》(浙江大学翁凯分校)
分项
包括C语言迷宫、二十一点游戏、跑步简笔画、超市管理系统、打字字母、电子钟、对仗、俄罗斯方块、黑白棋、华容道、火车票订票管理源码、连连看、商品销售系统、象棋、超级玛丽、图书管理系统、学生成绩管理系统。