C语言 知识点 + 笔记(2w6千字 持续更新...)

2024-04-11 18:28

本文主要是介绍C语言 知识点 + 笔记(2w6千字 持续更新...),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

本篇以笔记为主的C语言详解,全篇一共十章内容,2万6千多字,会持续更新基础内容,争取做到更详细。多一句没有,少一句不行! 

形而上学者谓之道,形而下学者谓之器


第 1 章 C语言的流程

(1) C程序经历的六个阶段

  1. 编辑(Edit)
  2. 预处理(Preprocess)
  3. 编译(Compile)
  4. 汇编(Assemble)
  5. 链接(Link)
  6. 执行(Execute)

(2) C语言编写代码到运行

都是先编译,后链接,最后运行。(.c ---> .obj --->.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。


(3) C程序流程图


计算机基础

计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.

4.bit  是指为0 或者1 byte 是指字节, 一个字节 = 八个位(1 byte = 8 bit).


(1) 十进制转 N 进制

十进制转 二进制、八进制、十六进制

重点

万能公式 十进制 转 N进制

 x 一直 除 n(n表示n进制),取余数倒排

例1 十进制转二进制

x = 25(十进制) 转二进制

25 / 2 = 12 ... 1

12 / 2 = 6 ... 0

6 / 2 = 3 ... 0

3 / 2 = 1 ... 1

1 / 2 = 0 ... 1

得到 二进制 11001,对应十进制 25


例2 十进制转八进制

x = 25(十进制) 转八进制

25 / 8 = 3 ... 1

3 / 8 =0 ... 3

得到 八进制 31,对应十进制的 25


例3 十进制十六进制

x = 25(十进制) 转十六进制

25 / 16 =  1 ... 9

1 / 16 =0 ... 1

得到 十六进制 19,对应十进制的 25

特别注意

十六进制中 没有 10 ~ 15的阿拉伯数字,

用的是 a ,b ,c ,d ,e ,f 字母代替 数字10 ,11 ,12 ,13 ,14 ,15


(2) N进制 转十进制

重点

万能公式 N进制转十进制 

右边第一位开始,第一位的数字,从0次幂开始 ~ i次幂结束,依次递增1

n进制 转成十进制 = x * n^ i 次幂

例1 二进制转十进制

(二进制)11001

= 1 * 2^4 + 1 * 2^3 + 1 * 2^0 

= 25


例2 八进制转十进制

(八进制)31

= 3 * 8^1 + 1 * 8^0

= 25


例3 十六进制转十进制

(十六进制)19

= 1 * 16^1 + 9 * 16^0

= 25


(3) 原码反码补码

在计算机中,所有的数据都是用机器码存储的,也就是有0 和 1 组成

二进制最高是符号位

0 表示正数

1 表示负数

正数的原码,反码,补码都一样

负数的反码 = 它的原码符号位不变,其他位置取反

负数的补码 = 它的反码 + 1

负数的反码 = 它的补码 - 1

这里我们 用 16 位的short类型来举例,-1512在二进制数据中,补码怎么计算得到

0的反码 ,补码都是0

计算机是以 补码的方式来运算 的

当人类看运算结果的时候,要看他的原码


第 2 章 数据类型、运算符和表达式

一、变量

(1) 变量的概念

内存中有个存储区域,这个地方的数据可以在同一类型范围内不断变化通过变量名,可以访问这块内存区域,获取里面的值;
变量名的构成:数据类型 变量名 值
C语言中变量声明格式: 数据类型 变量名 = 值

(2) 变量的注意

全局变量
        定义在函数外部的叫全局变量,默认初始化为0

静态变量 static

        带有static开头的关键字叫静态变量,默认初始化为0

局部变量

        声明局部变量以后,要初始化赋值!定义变量时,这个变量使用的内存不一定被清空,它可能是垃圾值,运行程序会异常退出

(3) 变量的作用域

局部变量

        在函数中定义的,有效范围在 定义开始到{ }结束
全局变量

        在函数外定义,有效范围从定义位置开始,到程序结束!


二、标识符

标识符的概念

C语言中,凡是可以自己命名的地方,都叫做标识符 例如:函数名,变量名,数组名,结构体名

C语言标识符的命名规范

1.只由英文大小写字母、数字、或 _(下划线) 组成
2.第一个字符只能是英文字母或下划线,不能数字开头!!!
3.大小写英文字母代表不同的字符
4.不能是C语言的关键字

C语言 32个关键字

单击表格关键字跳转详细解释

autoshortintlong
floatdoublecharstruct
unionenumtypedefconst
unsignedsignedexternregister
staticvolatilevoidif
elseswitchcasedefault
fordowhilecontinue
breakgotosizeofreturn

数据类型的分类

三、运算符

C语言运算符优先级

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

--

()

圆括号

(表达式)/函数名(形参表)

--

.

成员选择(对象)

对象.成员名

--

->

结构体选择(指针)

对象指针->成员名

--

2

-

负号运算符

-表达式

右到左

单目运算符

~

按位取反运算符

~表达式

++

自增运算符

++变量名/变量名++

--

自减运算符

--变量名/变量名--

*

取值运算符

*指针变量

&

取地址运算符

&变量名

!

逻辑非运算符

!表达式

(类型)

强制类型转换

(数据类型)表达式

--

sizeof

长度运算符

sizeof(表达式)

--

3

/

表达式/表达式

左到右

双目运算符

*

表达式*表达式

%

余数(取模)

整型表达式%整型表达式

4

+

表达式+表达式

左到右

双目运算符

-

表达式-表达式

5

<< 

左移

变量<<表达式

左到右

双目运算符

>> 

右移

变量>>表达式

6

大于

表达式>表达式

左到右

双目运算符

>=

大于等于

表达式>=表达式

小于

表达式<表达式

<=

小于等于

表达式<=表达式

7

==

等于

表达式==表达式

左到右

双目运算符

!=

不等于

表达式!= 表达式

8

&

按位与

表达式&表达式

左到右

双目运算符

9

^

按位异或

表达式^表达式

左到右

双目运算符

10

|

按位或

表达式|表达式

左到右

双目运算符

11

&&

逻辑与

表达式&&表达式

左到右

双目运算符

12

||

逻辑或

表达式||表达式

左到右

双目运算符

13

?:

条件运算符

表达式1?

表达式2: 表达式3

右到左

三目运算符

14

=

赋值运算符

变量=表达式

右到左

--

/=

除后赋值

变量/=表达式

--

*=

<

这篇关于C语言 知识点 + 笔记(2w6千字 持续更新...)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/894840

相关文章

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、