0基础认识C语言(理论知识)

为了给0基础一个舒服的学习路径,就有了这个专栏希望带大家一起进步。

话不多说,开始正题。


一、C语言的一段小历史

C语言的设计要追溯到20世纪60年代末和70年代初,在那个时代美国有这么一号人叫做丹尼斯.里奇,他和同事肯.汤普逊合作开发了UNIX操作系统

PS:这里给大家普及一下目前有许多种操作系统,企业常见的为Unix系统和Linux系统,个人一般用Windows系统和MacOs系统

随后C语言逐渐取代了B语言,成为UNIX系统的主要编程语言。

之后为了统一标准,美国国家标准协会(ANSI)成立了一个委员会,发布了第一个C语言标准,之后国际标准化组织(ISO)也发布了标准,几乎是一样的。

到目前为止,C语言依然被广泛的运用,排名也保持在前五。

由此可见,C语言是极其重要的~

二、C语言的一些理论知识

1.编译和链接

C语言是一门编译型语言,C语言源代码是文本文件,本身无法执行,需要生成二进制可执行的文件才能执行,那么怎么变成二进制文件呢?

这个时候 .c 为后缀的文件就要提到编译和链接了,一般 .c 经过编译器编译成 .obj为后缀的目标文件(windows环境下),之后多个目标文件和链接库中的库文件在通过链接器变成可执行程序 .exe为后缀的文件。

2. 编译器的使用

新手来说VS2022是不错的选择,格式很好,比VS Code安装简单,比dev c++格式好,新手养成自己的代码风格的话VS是值得推荐的

VS唯一不足的是占用内存较大,大家自行选择~

三、C语言0基础入门小知识

1.main函数

一般在一个工程里,可能有多个 .c 文件,但是main函数只有一个,它是主函数,也是程序的入口,程序的指向从main函数第一行开始执行。

2.C语言的常见关键字

1. auto break case char const continue defauult do double else enum extern

2. float for goto if int long register return short signed sizeof static

3. struct switch typedef unino unsigned void volatile while

PS:这些关键字不用背!!!不用背!!!因为以后大家都会见到,见一个学一个,效果更佳,贪多嚼不烂~

3.ASCII 编码

PS:不需要背诵!!!

我们只要记住 :

a从97开始

A从65开始

数字 0~9是 48~57

\n 是10 (\n 的意思是换行)

0~31为不可打印字符

4.字符&字符串

单独一个为字符,比如 'a' '1' ......(%c)

多个字符一起组成字符串 'achhsd' ......(%s)

这个时候大家要注意字符串的末尾放着1个 \0 ,此时这个 \0 是字符串结束的标志,举个例子:

char arr1[ ] = "abc";

此时arr1为:arr1[0] = 'a' arr1[1] = 'b' arr1[2] = 'c' arr[3] = \0

PS:怕新手不理解,给大家解释一下,这个 arr1[ ] 是从0开始的,char类型是存放字符的,所以上面都是一个一个拆下来的

5.转义字符

\n 换行

\0 字符串结束的标志

\\ 避免打印不出 \ 因为 \ 会和其它一些字母形成新的意义,这个时候在 \ 前再加一 个 \ 就可以让计算机认为我们只输出一个 \

\' 同理,在 ' 前加一个 \ 就可以输出一个 '

\'' 同理,在 ' 前加一个 \ 就可以输出一个 '

\b 回退字符

\a 报警字符

\t 水平制表符(这里就是让输入的一些数据始终 包含自己所占的空格和下一个数 据前的空格之间始终保持在4 / 8个空格)

\v 垂直制表符

\ddd 表示 1~3 个八进制的数字

\xdd 表示 2 个十六进制的数字


这就是以上的内容了,大家需要自己下来多练习,至于安装VS的教程,b站上能找到,希望大家有所收获~

当你决定灿烂,山无拦,海无遮

下面这张图是从图书馆出来记录下的场景~

虽然现在很菜,但是坚持下去,只要进步,就会让人快乐

相关推荐
mazo_command28 分钟前
【MATLAB课设五子棋教程】(附源码)
开发语言·matlab
88号技师31 分钟前
2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码
人工智能·算法·matlab·优化算法
IT猿手32 分钟前
多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
开发语言·人工智能·算法·机器学习·matlab
青春男大32 分钟前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
88号技师32 分钟前
几款性能优秀的差分进化算法DE(SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin)-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
Zer0_on35 分钟前
数据结构栈和队列
c语言·开发语言·数据结构
一只小bit36 分钟前
数据结构之栈,队列,树
c语言·开发语言·数据结构·c++
马浩同学1 小时前
【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
c语言·单片机·嵌入式硬件·mcu
我要学编程(ಥ_ಥ)1 小时前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先
埃菲尔铁塔_CV算法1 小时前
FTT变换Matlab代码解释及应用场景
算法