C语言概述收尾+数据类型和变量

📅 2026/7/13 14:18:53
C语言概述收尾+数据类型和变量
文章目录前言本文将通过丰富的代码示例、直观的图示和详细的解释带你一步步掌握这些知识。无论你是刚刚接触编程还是希望巩固C语言基础相信本文都能为你提供清晰的指引和实用的参考。C语言概述(下)转义字符语句和语句分类注释是什么?怎么写注释?为什么写注释?注释会被替换数据类型和变量数据类型介绍布尔类型各种数据类型的长度sizeof中表达式不计算signed和unsigned变量变量的分类总结前言欢迎来到C语言入门系列教程本文是继上一讲之后对C语言基础知识的进一步深入。我们将系统性地探讨C语言中几个核心且实用的概念转义字符、语句分类、注释的写法与作用以及数据类型与变量。对于初学者而言理解这些基础概念是构建扎实编程功底的关键。转义字符让你能灵活处理文本中的特殊符号清晰的语句分类帮助你组织代码逻辑恰当的注释能让代码更易读、更易维护而深刻理解数据类型和变量则是高效、安全使用内存的基石。本文将通过丰富的代码示例、直观的图示和详细的解释带你一步步掌握这些知识。无论你是刚刚接触编程还是希望巩固C语言基础相信本文都能为你提供清晰的指引和实用的参考。C语言概述(下)转义字符上次讲到了转义字符\n接下来给大家介绍一些其他几个常见的转义字符\’ :用于表示字符常量’\:用于表示一个字符串内部的双引号图中可以看到如果不加\则会报错,编译时会认为前两个单引号结合了,后面多了一个单引号引发报错.加上反斜杠使它变成转义字符,此时来看成功打印出一个单引号.双引号同理.\\:表示一个反斜杠防止它被解释为一个转义序列符当我们想要输出一个路径的时候很容易导致\被误认为转义符号因此我们需要将\也转义一下这就用到了\\这里我们通过\\成功输出了预期的结果\t:制表符,光标移到下一个水平制表位,通常是下一个4/8的倍数这个例子中我们可以看到这些字符之间的空隙越来越小,这是因为我们这个\t是加上前面的字符到下一个字符是占了8位,比如我们a后面有个\t那么算上a这一位后面会有7个空格占7位加上前面的a一共是8位,那么www后面则是5个空格,uuuu后面是4个空格这个\t其实起到的是一个对齐的作用\a:警报 :这会使得终端发出警报声或出现闪烁或者两者同时发生.代码如下大家可以自行演示运行起来会听到提示音#includestdio.hintmain(){printf(\a);return0;}\b :退格符,光标回退一个字符,但不删除字符这里给大家介绍一个函数来搭配使用会更清晰的理解\b的功能getchar();//这个函数是用来在键盘上读取一个字符的可以看到没有使用函数的时候我们根本看不出来\b的效果这里我们使用了getchar函数可以看到光标在倒数第二个字符后面等待我们去给出一个字符这就体现了\b的作用光标回退一个字符但是不删除下面我们介绍两种特殊的转义字符\ddd : d d d 表示1~3个八进制的数字 eg: \130 表示字符X,这里需要将八进制转化为十进制然后推导ASCII码值得出打印出来的是X\xdd : d d 表示2个十六进制的数字 eg: \x30 表示字符0\0: null字符,表示没有内容 \0 就是\ddd这类转义字符的一种,用于字符串的结束标志其ASCII码值是0如果让大家去计算一下字符串里有几个字符该如何去算呢#includestdio.hintmain(){printf(abcdef);return0;}这里很多人会去数这里面的字符个数然后加上后面的\0,但是如果有很多字符数不清怎么办?这里给大家介绍一个计算字符个数的函数strlen#includestdio.h#includestring.hintmain(){intlenstrlen(abcdef);//strlen--string lenth --统计字符串的长度printf(%d\n,len);return0;}运行结果如下这个时候就有同学问了为什么他的结果是6呢不应该是7吗??abcdef六个字符加上字符串结束的标志\0一共是七个啊,这说明你之前掌握的很好,其实这个strlen函数准确来说统计的是\0之前的字符的个数所以不会计入\0这一个字符#includestdio.h#includestring.hintmain(){intlenstrlen(c:\test\190\nuo\t.c);pirntf(%d\n,len);return0;}大家可以先自己看一下这个len的结果是什么然后运行验证一下这个里面其实有个容易错的点就是把\190当成一个字符来看 注意一下八进制里面是没有8和9的所以\1是一个字符\190是三个字符10进制数:0~98进制数:0~72进制数:0~1#includestdio.h#includestring.hintmain(){intlenstrlen(c:\test\098\nt.c);printf(%d\n,len);return0;}大家可以再看一下这个最后答案是多少然后用VS运行一下验证自己判断的对不对这里要注意了出现了\0那么就只有\0前面的个数语句和语句分类C语言的代码时由一条条的语句构成的,C语言中的语句可以分为下面五种类别:1.空语句2.表达式语句3.函数调用语句4.复合语句5.控制语句空语句#includestdio.hintmain(){;//空语句return0;}空语句一般出现的地方是:这里需要一条语句,但是这条语句什么也不需要做,就可以写一个空语句.表达式语句表达式语句就是在表达式后面加上分号#includestdio.hintmain(){inta9;intb3;cab;//表达式语句return0;}复合语句复合语句其实就是代码块,成对括号中的代码就构成了代码块,也被称为复合语句#includestdio.hintmain(){inti0;intarr[10]{0};for(i0;i10;i)//for循环大括号里面的就是复合函数{arr[i]10i;}return0;}控制语句C语言是一门结构化的程序设计语言控制语句用于控制程序的执行流程,以实现各种结构方式(C语言支持三种结构:顺序结构,选择结构,循环结构)他们是由特定的语句定义符组成C语言有九种控制语句,分为下面三类条件判断语句也叫分支语句:if 语句,switch语句循环执行语句:do while 语句 while语句 for语句转向语句:break语句,goto语句,continue语句,return语句后面会详细介绍注释是什么?怎么写注释?为什么写注释?注释是对代码的说明,编译器会忽略注释,也就是说注释对实际的代码没有影响.注释是给自己和他人看的,好的注释可以帮我们更好的理解代码.注释有两种方式/**/这种形式也可以注释多行但是不支持嵌套注释,第一个 /* 会和遇见的第一个 */ 结合第二种是 // 我们可以点击下方图片中标注的图标来进行注释或者在我们想注释的文字开头输入 // ,这里就不再进行演示,大家可以发现我们一开始就在使用这种注释方法来进行讲解了注释会被替换编译的时候注释会被替换成一个空格hello/* 这里是注释 */C 编译这句话时不是helloC而是hello C.C语言的概述我们就讲到这里大家对于C语言的认识应该有了一定的了解接下来我们来介绍一下数据类型和变量.数据类型和变量在之前的讲解中大家可能注意到了我们多次使用int char等那么这些是什么呢?其实这些就是数据类型数据类型介绍C语言提供了很多数据类型来描述各种数据100 234 67 特征:都是整数 那么我们称之为 整型3.14 4.3 5.7 特征: 小\数 我们称之为浮点型使用整型类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数所谓类型就是相似的数据所用的共同特征编译器只有知道了数据的类型才知道如何去操作,数据类型的分类如下图我们首先介绍的是内置类型字符型字符的英文单词是character,在C语言中使用char表示字符类型char//charactersignedchar//有符号的字符unsignedchar//无符号的字符整型整型的英文单词是integer,在C语言中用int表示其中Int分为四种分别是 : short int , int , long int , long long int .它们的主要差异是长度不一样,除了int中的int不可省略其他类型中的int均可省略//短整型([]中的可以省略后面不在赘述)short[int][signed]short[int]unsignedshort[int]//整型int[signed]intunsignedint//长整型long[int][signed]long[int]unsignedlong[int]//比长整型还要长的整型longlong[int][signed]longlong[int]unsignedlonglong[int]浮点型float//单精度浮点型double//双精度浮点型longdouble//精度更高浮点型布尔类型C语言本来没有为布尔值单独设置一个类型,而是使用整数0表示假,非零值表示真,在C99中也引入了布尔类型,是专门表示真假的_Bool布尔类型的使用得包含头文件 stdbool.h布尔类型变量的取值是: true 或 false后来给_Bool重命名为bool后期可以使用bool来创建布尔类型的变量各种数据类型的长度每一种数据类型都有自己的长度,使用不同的数据类型能够创建出不用长度的变量,变量长度的不同,存储的数据范围就不同.sizeof 操作符sizeof是一个关键字也是操作符,专门用来计算sizeof的操作符数的类型长度,单位是字节.sizeof操作符的操作数可以是类型也可以是变量或者表达式sizeof(类型)sizeof表达式sizeof计算的值如果需要打印的话格式应该为%zdsizeof的计算结果是size_t类型sizeof后边的表达式是不真实参与i运算的, 根据表达式的类型来得出大小比如 sizeof (35) 它其实不会去计算35等于几它计算的是 int int intintmain(){printf(%zd\n,sizeof(11.4));return0;}那么这个的结果是什么呢?大家可以下去验证一下下面我们来看一下各种类型在vs2022中都是多大字节的sizeof中表达式不计算sizeof在代码进行编译的时候,就根据表达式的结果的类型,推导并确定类型的长度signed和unsignedC语言中使用signed和unsigned关键字修饰字符型和整型类型signed 关键字表示一个类型带有正负号unsigned 关键字表示该类型不带有正负号只能表示0和正整数int类型默认是有符号的等同于signed int 因此我们在创建signed int时直接写int 即可signedinta;//等于 int a ;int 类型也可以不带正负号只表示非负整数,这时就必须用unsigned声明变量unsignedinta;整数变量声明为unsigned 的好处是,同样长度的内存能够表示的最大整数值增大了一倍.比如16 (2字节,一个字节8位,8个bit)位的signed short int 的取值范围是-32768~32767 最大值是32767;而unsigned short int的取值范围是0~65535,最大值是65535.unsigned int 里面的int可以省略unsigneda;字符类型char也可以设置signed和unsignedsignedchar;//这里的signed是否可以省略是不确定的这个取决于编译器,在vs上是可以互相等于的unsignedchar;现在我们回看sizeof的计算结果size_t类型sizeof计算的是sizeof的操作符数的类型长度长度他不可能是负数也不可能是小数,那么sizeof的返回值应该是无符号的整数类型,C语言只规定是无符号整数,没有规定具体类型,而是留给系统自己去决定返回什么类型,不同的系统返回的值可能是unsigned int 也有可能是unsigned long 对应的printf()占位符是%u,%lu,这样的话就不利于程序的可移植性C语言创造了一个类型别名size_t来统一表示sizeod的返回值类型,对应当前系统的sizeof返回值类型,可能是unsigned int 也可呢个是unsigned long long.size_t对应的打印应该使用%zu或者%zd都可以变量变量的创建了解了类型那么我们用类型去做什么呢?类型其实是用来创建变量的那么啥又是变量呢?? C语言中把经常变化的值称为变量,不变的值称为常量比如每天天气的温度,体重,年龄这些都是变量血型,身份证号这些都是常量变量创建的语法是:data_type name;//其中data_type是数据类型,name是变量名变量命名的规则:只能由字母数字下划线组成不可以用数字开头长度不能超过63个字符变量名中区分大小写的变量名中不可以使用关键字intmain(){inta;//创建变量intb10;//这种创建了变量然后给其一个初始值叫做初始化flout s3.14f;//flout类型的他会默认是double这个时候我们只需要在后面加上f就行啦return0;}变量的分类全局变量在大括号外部定义的变量就是全局变量全局变量的使用范围更广,整个工程中想使用都是有办法的局部变量在大括号内部定义的变量就是局部变量局部变量的使用范围比较局限,只能在自己所在的局部范围内使用intb4;//全局变量intmain(){inta;//局部变量return0;{\当局部变量和全局变量同名的时候,局部变量优先使用总结本文我们系统地学习了C语言中几个重要的基础概念转义字符掌握了\、\、\\、\t、\a、\b、\ddd、\xdd和\0等常见转义字符的用法理解了它们在字符串处理和输出格式控制中的作用并通过strlen函数加深了对字符串长度计算以\0为结束标志的理解。语句和语句分类了解了C语言代码由语句构成并将其分为五类空语句、表达式语句、函数调用语句、复合语句代码块和控制语句。这为后续学习程序的控制流顺序、选择、循环打下了基础。注释明确了注释是写给程序员看的说明编译器会忽略。学会了使用/* */进行块注释和//进行行注释并知道了注释在编译时会被替换为一个空格。数据类型和变量数据类型认识了C语言的内置类型包括字符型 (char)、整型 (short,int,long,long long及其signed/unsigned变体)、浮点型 (float,double,long double) 以及C99引入的布尔类型 (_Bool/bool)。类型长度学会了使用sizeof操作符来获取数据类型或变量所占的字节数并理解了sizeof中的表达式不参与实际运算。变量掌握了变量的创建与初始化语法了解了变量命名的规则并区分了全局变量和局部变量的作用域及优先级局部变量优先。这些内容是C语言编程的基石。理解并熟练运用它们将帮助你写出更规范、更健壮、更易读的代码。在接下来的学习中我们将基于这些知识深入探讨运算符、控制语句、函数等更高级的主题。希望本篇教程对你有所帮助