C语言重点回顾(持续更新中~)

devtools/2025/1/17 7:06:09/

个人见解,有异议可以留言~


第一讲:初识C语言

目录

1.编译和链接

2.main函数

3.库函数

4.关键字

5.字符和字符串

6.转义字符


1.编译和链接

        初始的C语言源代码是一个文本文件,要想将一个文本文件变成一个执行文件,需要经过编译器编译和链接器链接,但是并不是仅仅只有这两个步骤,还有预处理,汇编。

        例如:      hello.c      ------------------------>   hello.exe   

                                               编译和链接         

        源文件经过编译器的编译生成.obj的目标文件,链接器再将以.obj结尾的多个文件与库文件进行链接,生成可执行文件.exe.

2.main函数

        main函数作为程序的入口,每个程序都是从main函数开始执行的(不管你的C语言程序有多少行,都是从main函数开始)。

2.1 main函数的特点

  •   main函数是程序的入口
  •   main函数有且仅有一个
  •   即使一个项目有多个源文件,里面有众多函数,但是main函数有且仅有一个                   

3.库函数

        当C语言学习进行到后期时,会进行函数的编程,但有些函数的功能使用的代码都一样,这样就会影响开发的效率,所以为了提高代码的开发效率,引进了库函数的概念,库函数里管理了众多函数,使用某一个函数时,因为库函数中函数声明一般放在头文件中,需要引进对应的头文件,否则无法使用。库函数的函数有strlen(),strcmp(),strcpy()……

4.关键字

        有些保留的符号给C语言使用,这类符号就被称为关键字。

4.1 关键字的特点        

  • 关键字都有特殊的意义,主要是保留给C语言使用。
  • 程序员自己创建标识符时是不能和关键字重复。
  • 关键字也是不能自己创建

4.2 常见的关键字

        数据类型:int short long char _Bool(C99) float double  

        选择结构:if else switch case break default

        循环结构:for continue while do

        有符号和无符号:signed unsigned

        操作符:sizeof

        其他:auto const(修饰常量) enum(枚举) extern(外部声明) goto register return static(静态) struct(结构体) typedef(重定义) union(联合体) void volatile(C++)

         注:在C99标准中加⼊了 inline 、 restrict 、 _Bool 、 _Complex 、 _Imaginary 等关键 字 

5.字符和字符串

        字符:C语言中诸如此类'a','b','c','d'……'@','#','$'等等,同时为了管理以及通信,也为字符设置了一个标准ASCII编码,C语言中的字符遵循ASCII编码。字符的打印格式:%c

5.1 ASCII编码

        对于ASCII编码表来说,重要的有以下几条:

  1.         'A'~'Z'的ASCII值为65~90,'a'~'z'的ASCII值为97~122,两者对应的大小写差值为32
  2.         数字字符0~9的ASCII值为48~57
  3.         '\n'的ASCII值为10
  4.         ASCII值为0~31的这32个字符是不打印字符,无法打印在屏幕上观察

5.2 字符串

        区别于字符,字符串是诸如此类"abcdefghij","你好啊","hello"……字符串的打印格式:%s

        C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个 \0 字符,这个 \0 字符是字符串 的结束标志。

6.转义字符

        转义字符:转换原来意思的字符

        6.1 常见的转义字符

        C语言中转义字符具体如下:

        • \? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。

        • \' :⽤于表⽰字符常量'

        • \" :⽤于表⽰⼀个字符串内部的双引号

        • \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。

        • \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

        • \b :退格键,光标回退⼀个字符,但不删除字符。

        • \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。         • \n :换⾏符。

        • \r :回⻋符,光标移到同⼀⾏的开头。

        • \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。

        • \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。

        下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式        

        • \ddd :ddd表⽰1~3个⼋进制的数字。如: \130 表⽰字符X 

        • \xdd :dd表⽰2个⼗六进制数字。如:\x30 表⽰字符0


第二讲:数据类型和变量

目录

1.数据类型

1.1 主要的数据类型

        字符型:[signed] char , unsigned char

        布尔型: _Bool

        整型: [signed] int , unsigned int, [signed] short [int],unsigned short [int],[signed] long [int],unsigned long [int], [signed] long long [int],unsigned long long [int]

        浮点型: float,double,long double

        注:[……]里面的内容都可以省略

1.2 数据类型长度

         每一个不同的数据类型都拥有自己固定的长度,数据类型的不同,长度就会有差异,长度不同就会影响取值范围。

注:固定:并不是很准确的解释,会根据编译器的不同显示不同的数据类型长度

        为了获取数据类型的长度,需要使用操作符 sizeof().这个操作符也是关键字,单位是字节

1.3 数据类型的取值范围

2.变量

3.操作符


http://www.ppmy.cn/devtools/151205.html

相关文章

3D目标检测数据集——Nusence数据集

链接地址 [官网] nuScenes[arXiv] nuScenes: A multimodal dataset for autonomous driving[GitHub] nuScenes devkitnuScenes devkit教程数据集概述 2.1 数据采集 2.1.1 传感器配置 nuScenes的数据采集车辆为Renault Zoe迷你电动车,配备6个周视相机&#x

ASP.NET Core 中,认证(Authentication)和授权(Authorization)

在 ASP.NET Core 中,认证(Authentication)和授权(Authorization)是两个非常重要的概念。它们确保用户能够安全地访问应用程序,并且在访问过程中能按其权限被正确地控制。接下来,我将详细解释这两…

Java反射、静态代理、动态代理

往期推荐 Java io模型-CSDN博客 如何设计一个能根据任务优先级来执行的线程池-CSDN博客 Web实时消息推送的几种方案_setmessageinnerhtml is not defined-CSDN博客 yum、dnf、apt包管理工具-CSDN博客 概述 反射机制是在运行状态中,对于任意一个类,都能够…

在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据

在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据,通常是因为以下原因之一: 1. 分页限制 GitLab API 默认会分页返回数据,每页的默认数量是 20 条&#xff08…

关于《关卡1:Pandas处理时间数据》学习心得分享

碎碎念:由于我在时间序列分析方面的知识尚显薄弱,因此参加了和鲸举办的时间序列数据处理训练营,期望能够提升相关技能。同时,我借助了GPT来补充一些内容,希望这些分享能对各位读者有所帮助。欢迎大家一起学习交流&…

深入理解 Entity、VO、QO、DTO 的区别及其在 MVC 架构中的应用

文章背景 在现代软件开发中,我们经常会接触到各种数据结构的概念,比如 Entity、VO(Value Object)、QO(Query Object)、DTO(Data Transfer Object)等。这些概念尽管看似相似&#xff…

【算法】图解二叉树的前中后序遍历

目录 1.递归序实现 2.非递归实现 二叉树的节点结构 public static class Node {public int value;public Node left;public Node right;public Node(int data) {this.value data;} } 1.递归序实现 递归的方法遍历二叉树时每一个节点都会被访问三次 public static void f…

【微信小程序】let和const-综合实训

let 和 const 都是用于声明变量的关键字,它们与传统的 var 关键字相比,有很多不同之处。 let 声明块级作用域变量,可再赋值;const 声明块级作用域常量,不可再赋值。 以下是它们的详细介绍: 一、基本概念…