一篇文章带你全面了解C语言的基本框架结构——初识C语言

什么是C语言?

计算机语言

众所周知,人与人交流需要通过各种各样的语言。例如,在日常生活中,我们使用中文与人沟通;在科研研究中,我们通过论文相互学习;面对外国友人,我们通过英语彼此寒暄…同样,人与计算机也需要语言进行交流。这时,计算机语言就此诞生。目前已知已经有上千种计算机语言,人们是通过计算机语言写的程序,给计算机下达指令,让计算机工作的。C语言作为最古老最基础最热门的计算机语言之一,成为学习计算机新手的大量选择,可谓经久不衰百味。值得注意的是,计算机语言(C、C++…)只用于底层开发

计算机结构示意图如下:
在这里插入图片描述

C语言的发展历史

1.C语言发展至今经历了很长的过程:最开始计算机是通过二进制识别数据,人们为了方便使用设计了汇编语言和助记符。后来,如同人类的第二次工业革命一样,计算机语言开启了高级语言时代。
从B语言到如今的C语言均为高级语言。
2. 早期的C语言存在很多问题,同时为了统一标准方便使用,美国国家标准协会(ANSI)正式将C语言标准化,标志C语言正式开始稳定和标准化。C语言的国际标准也叫做ANSI C
在这里插入图片描述
在这里插入图片描述

编译器的选择——VS2022(微软永远的神)

编译器是什么?

• 编译器就是编译并翻译C语言代码的一种工具。

• C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。 C语言代码要得到最终运行的可执行程序,中间要经过编译和链接2个过程。在这里插入图片描述

市面上的一些编辑器

我们常见的C语言编译器都有哪些呢?
比如:msvc、clang、gcc 就是⼀些常见的编译器,当然也有一些集成开发环境如:VS2022、
XCode、CodeBlocks、DevC++、Clion等。
其中集成开发环境

(IDE,Integrated Development Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。

VS2022及Visual Studio系列的优势

• VS2022及VS系列是⼀个主流的集成开发环境,企业中使用较为普遍
• VS2022及VS系列包含了:编辑器+编译器+调试器,功能强大
• 直接安装即可使用,基本不用额外配置环境,上手容易
• 相较于其他IDE:

• VS2022 集成了MSVC(安装报包较大一些,安装简单,无需多余配置,使用起来非常方便)
• XCode 集成了clang(苹果电脑上的开发工具) • CodeBlocks 集成了gcc(这个工具比小众,需要配置环境,不太推荐)
• DevC++ 集成了gcc(小巧,但是工具过于简单,对于代码风格的养成不好,一些竞赛使用)
• Clion 是默认使用CMake,编译器是可以配置的(工具是收费,所以暂时推荐大家使用)

综上所述,VS2022作为入手学习的编译器无疑是一种很好的选择

如何写代码&第一个C语言项目

#include <stdio.h>
int main()
{
printf("I like CSDN.");
return 0;
}//快捷键ctrl+f5 可以启动运行

具体(简单)的操作

1.创建一个项目
2.创建一个源文件
3.写代码
4.编译代码+运行

头文件&源文件

在VS上写代码,我们是需要创建项目的,直接新建项目就可以了。
在项目中就可以添加源文件和头文件。
C语言把 .c 为后缀的文件称为源文件,把 .h 为后缀的文件称为头文件

主函数main

main函数的一般格式如下:


     int main({
     double a=0;
     return 0;
 }

• 主函数是一个代码的入口,你说写的代码就是从main函数之后的第一行开始运行的
• int是整数型式的意思。
• 大括号之内是代码的内容。
• return表示返回,return 0表示返回结束。
注:
• main函数是程序的入口
• main函数有且仅有一个
• 即使⼀个项目中有多个.c文件,但是只能有一个main函数(因为程序的入口只能有一个)

printf&库函数

printf函数

printf即print format打印数据的函数

#include <stdio.h>//.h 为头文件
int main ()
{
       printf("abcdefg");//打印后显示屏上显示abcdefg
return 0;
}

注:
使用printf必须引用头文件

printf是按照格式打印数据的
%d是打印整数;%c是打印字符;%f是打印小数的

#include <stdio.h>
int main ()
{
printf("%d",100);
printf("%C",'w');
printf("%f",3.5f);
return 0;

库函数是什么?

为了不再重复实现常见的代码,让程序员提升开发效率,C语标言准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上一些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不一定支持)。
一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用,要包含对应的头文件。
库函数比较多,了解可参考链接:

https://cplusplus.com/reference/clibrary

关键字(保留字)

C语言中有一批保留的名字的符号,比如:if return int ,这些符号被称为保留字或者关键字。值得注意的是,这些关键字与前一个标题说描述的库函数不同,他们是由C语言直接提供不需要其他厂商提供并创建,同时,作为程序员也不能私自创建。
最原始的关键字有32个,如下:

1 auto break case char const continue defalt do double else
enum extern 
2 float  for goto if int long register return short signed 
sizeof
3 struct swith typedef union unsigned void volatile while 

字符和ASCll编码

在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语言中字符是用单引号括起来的,如:‘a’,‘b’,‘@’。

我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样的二进制存储的呢?如果我们每个人自己给这些字符中的每个字符编⼀个二进制序列,这个叫做编码,为了方便大家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语言中的字符就遵循了 ASCII 编码的方式。在这里插入图片描述

• 字符A~Z的ASCll码值为65-90
• 字符a~z的ASCII码值从97-122
• 对应的大小写字符(a和A)的ASCII码值的差值是32
• 数字字符0~9的ASCII码值从48-57
• 换行 \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察

可打印字符展示:

#include <stdio.h>

int main()
{
     int i=0;
     for (i=32;i<=127;i++)
     {
                printf("%c",i);
                if(i%16==15printf("\n");
     }
        return 0;
}

运行
在这里插入图片描述

字符串&\0

• C语言中如何表示字符串呢?使用双引号括起来的一串字符就被称为字符串,如:“abcdef”,就是一个字符串。
字符串的打印格式可以使用 %s 来指定。
• C语言字符串中一个特殊的知识,就是在字符串的末尾隐藏放着一个 \0 字符,这个 \0 字符是字符串的结束标志。
例如:
对于字符串"abc",我们实际上看到了3个字符:a,b,c,但是实际上在末尾还隐藏一个 \0 的转义字符, \0 是字符串的结束标志。所以我们在使用库函数 printf() 打印字符串或strlen() 计算字符串长度的时候,遇到 \0 的时候就自动停止了。
我们可以看到,运行结果中arr1中的打印结果为abc;而arr2中的打印结果为abc加上一堆不知所以的文字,这些文字就是乱码。可见,\0在运行中起到阻止运行的效果,\0有利地防止了乱码得产生,没有\0,将会对运行带来意想不到的后果。综上所述,\0具有十分重要的作用

在这里插入图片描述

转义字符

就像上面所介绍的一样,\0这样的符号就是C语言中的转义字符。转义
字符顾名思义:转变原来的意思的字符
\n就是其中的一个转义字符,其作用是换行
如图所示,原有的n字符在没有修改之前,只是单纯的打印字符’n’,没有实在含义;当从’n’变为’\n’后,意思就转变为换行。
在这里插入图片描述
常见的转义字符还有很多,例如下面所讲述的:

• \? :在书写连续多个问号时使用,防止他们被解析成三字母词,在新的编译器上没法验证了。
• \’ :用于表示字符常量’。
• \" :用于表示⼀个字符串内部的双引号。
• \\ :用于表示⼀个反斜杠,防止它被解释为一个转义序列符。
• \a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发生。
• \b :退格键,光标回退⼀个字符,但不删除字符。
• \f :换页符,光标移到下一页。在现代系统上,这已经反映不出来了,行为改成类似于 \v 。
• \n :换行符。
• \r:回车符,光标移到同一行的开头。
• \t :制表符,光标移到下一个水平制表位,通常是下一个8的倍数。
• \v:垂直分隔符,光标移到下⼀个垂直制表位,通常是下一行的同一列。 下面2种转义字符可以理解为:字符的8进制或者16进制表示形式
• \ddd:d d d表示1~3个八进制的数字。 如: \130 表示字符X
• \xdd :d d表示2个十六进制数字。 如: \x30 表示字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的一种,用于字符串的结束标志,其ASCII码值是0。

注释

注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。
注释是给程序员自己,或者其他程序员看的。

注释的两种形式

1./**/ 的形式
第⼀种方法是将注释放在 /*...*/ 之间,内部可以分行。

2.// 的形式
第二种写法是将注释放在双斜杠 // 后面,从双斜杠到行尾都属于注释。这种注释只能是单行,可以放在行首,也可以放在一行语句的结尾。

给读者的话

作为一个刚刚接触C语言的小白,我的知识技术等方面还有很多不足。但希望此肺腑之言可以让更多的新手了解认识C语言乃至计算机语言,真心希望我能帮到你,让你更加大胆地迈入程序员写代码的行列之中。最后申明,此篇文章的写作思路参照鹏哥的集训营,大家不喜勿喷,但如果有除此以外的不足,请大家积极指出,我会加以修正。谢谢。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值