C语言常见概念

1. C语言发展史,学习C语言的必要性?

C语言是一门计算机语言,是人和计算机交流的一种语言。C语言最初是作为Unix系统的开发工具而发明的,在当时B语言基础上重新设计的一种语言,取名为C语言,在1988年美国标准协会ANSI正式将C语言标准化,标志着C语言开始稳定和规范化。

从这个图片可以看出,C语言在编程语言发展中一直稳占前五,它经过五十多年的发展仍然首当其冲,可以看出其学习C语言的必要性。


2. 编译和链接是什么?过程是什么?

C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身是无法执行的,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,文件才能执行。

C语言代码是放在.c为后缀的文件中的,要得到最终运行的可执行文件,中间需要经过编译和链接两个过程,因为计算机能够识别(执行)的是二进制的指令。

一个工程会由多个源文件组成,下图就是源程序经过编译器和链接器处理的过程

(1).每个源文件(.c)单独经过编译器处理生成对应的目标文件(.ojb为后缀的文件)

(2).多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)

3. 各个编译器我该使用什么?vs的优势?

常见C语言编译器有哪些呢?

比如:msvc、clang、gcc等就是一些比较常见的编译器,但有一些集成开发环境,如:VS2022、XCode、DevC++、Clion等。

集成开发环境包括了这些常见编译器的功能,使用起来更加便捷

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

综合考虑,更推荐于用VS2022的社区版进行学习,更方便,工作中常用

VS2022的安装链接:
Visual Studio 2022 IDE - 适用于软件开发人员的编程工具

4. main函数究竟是啥?

main函数也被称为主函数,程序的指向是从main函数的第一行开始执行的main函数其实是程序入口,但需要注意的是main函数有且仅有一个


5. 关键字有哪些? 要背诵吗?

C语言中有一批保留名字的符号,比如:int、if、return,这些符号被称为关键字。需要注意的是

• 关键字都有特殊的意义,是保留给C语⾔使⽤的?
• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的
• 关键字也是不能⾃⼰创建的

C语言32个关键字如下:

auto   break   case   char   const  continue   default   do   double   else   enum
 extern
float   for  goto   if   int   long   register   return   short   signed   sizeof
static
struct   switch   typedef   union   unsigned   void   volatile   while

还有一些其他的关键字,但最常用的就是以上几个。

其中的关键字不需要背诵,在经常熟练使用后就会记住,不需要花时间背诵。

6. 字符?asc码?字符计算?

能在键盘上被敲出来的都被称为字符,C语言中的字符是需要用单引号括起来的,比如'a','@'等等

因为所有的数据在计算机中都是用二进制的形式储存的,如果给每一个字符编一个二进制序列,这个就叫做编码,为了方便,美国标准协会ANSI出台了一个标准ASCII编码,C语言字符就遵循了ASCII编码的方式。

ASCII码表如下图:

单个字符的打印可以使用%c来指定格式,如图:

7. C语言的字符串?字符和字符串有何区别?

C语言中用双引号引起来的一串字符就被称为字符串,如:"abcdef",就是一串字符,字符串的打印格式可以用%s来打印也可以直接打印。

区别:字符使用单引号引用,字符串是使用双引号引用,字符串的末尾会隐藏带有\0,字符则没有

8. sizeof和strlen?竟然有坑?

字符串末尾会有一个\0,是字符串结束标志。

strlen是求字符串的长度的,关注的是字符串中的\0,计算的是\0之前出现的字符个数strlen 是库函数只针对字符串。

sizeof只关注 占用内存空间的大小,不在乎内存中放的是什么,计算字符串个数的时候会计算上 \0,sizeof是操作符


9. 转义字符是什么?平时怎么用呢?

转义字符就是转变字符原来的意思,产生了一个新的字符。

转义字符有以下:

• \ :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
• \' :⽤于表⽰字符常量
• \" :⽤于表⽰⼀个字符串内部的双引号
• \\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
• \b :退格键,光标回退⼀个字符,但不删除字符。
• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
• \n :换⾏符。
• \r :回⻋符,光标移到同⼀⾏的开头。
• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。
• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。

• \ddd :ddd表⽰1~3个⼋进制的数字。如:\130表⽰字符X
• \xdd :dd表⽰2个⼗六进制数字。如:\x30表⽰字符0
 \0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其
ASCII码值是0。

初步总结先到这里,拜拜~

                                                                                                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值