C语言重要内容完美总结

简介: C语言重要内容完美总结

大家春节快乐,新年快乐。今天给大家带来的是C语言基础知识点的总结,就是一些常见的内容,阅读了一部分资料,这里把这些内容串起来,全部总结出来和大家共享,共同进步!


1.算法结构: 顺序结构、选择结构、循环结构(循环结构又分为while型、until型、for循环结构;程序流程图);


2.结构化程序设计方法:(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码;


3.常量:常量包括字面常量、直接常量和符号常量;


4.变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;每一个变量被定义和确定类型后,在编译时编译器就能为其分配相应的存储单元;


5.整数类型:整数常量有十进制、八进制和十六进制;“%d”


6.整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长;


7.实型(浮点型)常量的表示方法:(1)十进制,0.0;(2)指数形式,123e3 ;


8.实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。


9.实型常量的类型:C编译系统将实型常量作为双精度来处理。


10.字符型数组:(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)


(二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”


(三)字符串常量:双撇号括起来的一系列字符序列。(注意双引号然后里面打一个空格也属于字符串)“ ”


11.C语言最常用的运算符有以下几种:


1、算术运算符(+ - * / %)结合方向自左向右


2、关系运算符(> < =="">= <= !="">)


3、逻辑运算符(! && ||)


4、位运算符(<>> ~ | ^ &)


5、赋值运算符(=及符号扩展赋值运算符)


6、条件运算符(? : )


7、逗号运算符( , )


8、指针运算符(* &)


9、求字节运算符(sizeof)


10、强制类型转换运算符((类型))eg:char a; int b=(int)a ;


11、分量运算符( . ->)常用于结构体


12、下标运算符([]) 常用于数组


12.控制语句:


完成一定的控制功能。


1、if()~else~


2、for()~


3、while()~


4、do~while()


5、continue


6、break


7、switch


8、goto


9、return


13.字符数据的输入输出:


1、putchar()输入字符变量


2、getchar()只能接受一个字符


14.格式输入输出:


1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)


2、scanf(格式控制,地址列表)


15.一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。


16.二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。


17.字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以'\0’代表。


18.字符串处理函数:


1、puts()将一个字符串输出到终端


2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。


3、strcat()链接两个字符数组中的字符串。


4、strcpy()字符串复制函数。


5、strcmp()比较字符串作用。


6、strlen()测试字符串长度的函数不包括“\0”


7、strlwr()将字符串中的大写字母转换为小写字母。


8、strupr()将字符串中的小写字母转换为大写字母。


19.函数


(1)一个源程序由多个函数组成。


(2)C程序的执行从main()函数开始;


(3)所有函数都是平行的;


(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。


20.函数定义的一般形式:


(1)类型标志符 函数名()


{


声明部分


语句


}


(2)类型标志符 函数名(形式参数列表)


{


声明部分


语句


}


21.关于形参和实参的说明:


(1) 在定义函数中指定的形参,在未出现函数调用时,他们并不占用内存中的存储单元,只有发生调用时,才会分配内存。


(2) 实参可以是常量、变量或者表达式;有时传递的时地址;


(3) 在被定义中,形参必须指定类型;


(4) 实参与形参的类型应相同或赋值兼容;


(5) C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只有实参传递给形参,而不能由形参传递给实参。


22.函数的返回值:


希望通过函数调用使主调函数得到一个确定的值。


(1)函数的返回值是通过函数中的return语句获取的。


(2)函数值的类型;


(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。


(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。


(5)如不需要带回任何值,用void。


23.函数的调用:


调用方式1、函数语句;2、函数表达式;3、函数参数。


24.被调用的函数的声明:


一个函数调用另一个函数所具备的条件:


1、首先被调用的函数必须是已经存在的函数;


2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。


3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。


4、如果被调用的函数定义出现在主调函数之前可以不必声明。


5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。


25.局部变量和全局变量:


(一)局部变量在一个函数内部定义的变量是内部变量,它只是在本函数范围内的有效,主函数也不能使用其它函数中定义的变量;不同函数中可以使用相同的名字的变量,他们代表不同的对象,互不干扰;形式参数也是局部变量;在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合句也可以称为“分程序”或“程序块”;


(二)全局变量,在函数之外定义的变量称为外部变量,全局变量可以增加函数间数据联系的渠道,一般不再必要时不要使用,他在程序的全部执行过程中占用存储单元,是函数的通用性,使用全局变量会使程序的清晰性降低。还要注意若果同一源文件中,外部变量和局部变量同名,则在局部变量作用范围内,外部变量被“屏蔽”,不起任何作用。


26.变量的存储类别:


(变量值存储时间)动态存储方式,在程序运行期间进行分动态的分配存储空间的方式,静态存储方式是指在程序运行期间分配固定的存储空间的方式;存储空间分为程序区、静态存储区和动态存储区;全局变量全部放在静态存储区中,程序开始时分配空间,完毕时释放;动态存储区中存放以下数据:


1、函数形式参数;


2、自动变量;


3、函数调用时的现场保护和返回地址;在C语言中每个变量和函数都有两个属性,是数据类型和数据存储类型,存储类别是数据在内存中存储的方式。


存储方式分为静态和动态存储类,具体包含有四种:自动的(auto),静态的(static),寄存器的(register),外部的(extern),如果不加以声明,就自认为是auto型就会自动分配存储空间属于动态存储方式。


27.Static声明局部变量是在函数调用结束后不消失而保留原值,即占用存储单元不释放,在下一次调用该函数时,该变量已有值,就是上次函数调用结束时的值。其中需要说明的是在定义局部变量不赋初值的话,则静态局部变量编译时自动赋值为0或者空字符,虽然静态局部变量在函数调用结束后仍然存在,但是其他函数不能引用它的。静态局部变量主要用在当初始化后,变量只是被引用而不改变其值。


28.Register变量是C语言中允许将局部变量的值放在CPU中的寄存器中需要时直接从寄存器中取出来参加运算,不必再到内存中提取,但是计算机系统中寄存器数量有限,不能任意定义任意多的存储器,局部静态变量不能定义为寄存器变量。


29.Extern声明外部变量,用以扩展外部变量的作用域。在一个文件中,如果定义之前的函数想引用该外部变量,则应该在引用之前用关键字extern对该变量做外部变量声明。在多文件中,也可以采用extern声明的办法进行外部变量声明。有时希望某些局部变量只限于被本文件引用,而不能被其他文件引用,这时就可以采用在定义外部变量时外加一个static,这在程序模块化设计中加强了通用性。


30.Static来声明一个变量的作用有二个,一个是在声明对局部变量时。则为该变量分配的空间在整个程序执行期间始终存在;一个是在对全局变量声明中,该变量的作用域仅限于本文件模块操作。


注意:这些方法同样适用于函数的声明


2023.01.22


From:努力进大厂的新青年

相关文章
|
3月前
|
算法 网络协议 Ubuntu
启用BBR拥塞控制算法
BBR是谷歌开发的TCP拥塞控制算法,能显著提升高延迟、轻微丢包网络下的传输性能。本文介绍在Linux系统上启用和验证BBR的步骤,包括检查内核版本、修改sysctl配置、应用并验证设置,帮助用户优化网络传输速度。
550 0
|
存储 移动开发 JavaScript
使用vuex记住当前页面页码信息,以便从详情页返回列表页时能还原到上一次页面
使用vuex记住当前页面页码信息,以便从详情页返回列表页时能还原到上一次页面
211 0
|
人工智能 Linux Docker
一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)
近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地应用。阿里云去年在云栖大会上发布了一系列基于通义大模型的创新应用,标志着大模型技术开始走向大规模商业化和产业化。这些应用展示了大模型在交通、电力、金融、政务、教育等多个行业的广阔应用前景,并揭示了构建具有行业特色的“行业大模型”这一趋势,大模型知识库概念随之诞生。
156845 30
[simulink] --- simulink辅助技巧
[simulink] --- simulink辅助技巧
598 1
|
安全 iOS开发 MacOS
Dolphin指纹浏览器+IPXProxy代理IP:配置与使用全流程
通过代理IP,用户可以轻松绕过地域限制,访问全球范围内的网站和服务。不过想要同时使用多个代理IP的话,就需要借助指纹浏览器。Dolphin指纹浏览器和IPXProxy代理IP是大家常用的组合,这个组合为用户打造了一个既安全又高效的在线环境。下面是Dolphin指纹浏览器配置IPXProxy代理IP使用步骤,帮助大家更好了解这个组合。
547 3
|
分布式计算 MaxCompute 数据库
实时数仓 Hologres产品使用合集之如何添加新字段
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
860 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
存储 自然语言处理 Go
详尽分享详解Go中的rune类型
详尽分享详解Go中的rune类型
332 0
|
弹性计算 大数据 应用服务中间件
阿里云服务器新老用户优惠价格表及收费标准(2024最新更新)
2024年阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实例、ECS计算型c7、通用型g7、c8i、g8i等企业级实例规格
475 0