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站上能找到,希望大家有所收获~

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

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

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

相关推荐
环能jvav大师1 分钟前
基于R语言的统计分析基础:使用SQL语句操作数据集
开发语言·数据库·sql·数据分析·r语言·sqlite
吱吱鼠叔4 分钟前
MATLAB方程求解:1.线性方程组
开发语言·matlab·php
菜鸟求带飞_4 分钟前
算法打卡:第十一章 图论part01
java·数据结构·算法
浅念同学6 分钟前
算法.图论-建图/拓扑排序及其拓展
算法·图论
Antonio9159 分钟前
【CMake】使用CMake在Visual Studio内构建多文件夹工程
开发语言·c++·visual studio
是小Y啦22 分钟前
leetcode 106.从中序与后续遍历序列构造二叉树
数据结构·算法·leetcode
LyaJpunov23 分钟前
C++中move和forword的区别
开发语言·c++
@月落26 分钟前
alibaba获得店铺的所有商品 API接口
java·大数据·数据库·人工智能·学习
程序猿练习生27 分钟前
C++速通LeetCode中等第9题-合并区间
开发语言·c++·leetcode
liuyang-neu32 分钟前
力扣 42.接雨水
java·算法·leetcode