C语言基本概念

本文介绍了C语言的基本概念,包括其起源、历史发展、编译器使用(如VS2022)、C语言的主函数(main)、printf和return的用法,以及字符、字符串和预处理的概念。还提及了如何创建和管理C语言项目,以及一些关键知识点如整数类型和字符串处理。
摘要由CSDN通过智能技术生成

1.C语言是什么

C语言是一种人类于计算机互相交流的语言,属于编程语言,在计算机里有许多种语言,如:java/C++/C等,人类通过各种编程语言来对计算机进行命令

2.C语言的历史

2.1C语言的来源

C语言是来源于一场设计失误,最初是为了作为Unix系统的开发工具而发明的。

1.B语言

发明C语言前,先产生的是B语言,但是B语言存在缺陷,它只允许放置解释器,而不是真正的编译器,由此产生的低效阻碍了使用B语言进行Unix自身的系统编程。

2.C语言

B语言的失败导致了C语言的产生,C语言在B语言的基础上进行了改进从而产生。

3.C语言标准的产生

这时期C语言的改编尤其混乱,可移植性极差,最后由ANSL设立了一个标准,也标志着C语言从此走向正轨

3.C语言的编译器

3.1C语言为什么要用编译器

普遍来讲,C语言编译的源代码仍属于文本文件,他无法被计算机识别,需要编译器链接器将其变为二进制(计算机可读的)文件来进行执行

3.2文件名约束

1.C语言得源代码通常创建在源文件当中,且文件名后缀需要有.c(C++的后缀为.cpp)

2.C语言中如#include等预处理文件或声明通常创建在头文件中,且文件名后缀需要有.h(有head的意思)

注:预处理文件也可放在含有.c文件里

3.3编译与链接的过程

正常情况下,先由源代码生成.c文件,.c文件经过编译器变为.obj文件(也叫目标代码),再由目标代码与函数库/链接库结合进入到链接器里,形成可执行文件,如下图

其中编译和链接是需要工具的,也就是编译器,编译成功会生成形如下图的文件

3.4常见的编译器

我所用的就是VS2022

  1. GCC (GNU Compiler Collection): GCC是一套广泛使用的编译器集合,支持多种编程语言,包括C、C++、Fortran等。它是自由软件,用于许多Unix和Linux系统。

  2. Clang: Clang是一个开源的C、C++和Objective-C编译器,它是LLVM项目的一部分。它被广泛用于编译C/C++代码,并在性能和错误信息方面具有很高的质量。

  3. Microsoft Visual C++ Compiler: 这是微软的C++编译器,用于Windows上的C++开发。它通常与Visual Studio集成使用。

  4. Java Compiler: Java编译器将Java源代码编译成Java字节码,然后由Java虚拟机(JVM)执行。有多个Java编译器,包括Oracle JDK的javac、OpenJDK等。

  5. Swift Compiler: Swift编译器用于将Swift编程语言代码编译成可执行的二进制文件。它是苹果公司开发的,用于iOS和macOS应用程序开发。

3.5 VS2022如何开启一个项目

1.打开编译器

2.点击创建新项目

3.点击空项目并且点击下一步

4.起你想要的名字(最好英文名,不容易出bug)

5.第五步,右击源文件开始创建

点击后选择:添加→新建项

6.最后一步

小提示:在配置新项目时不要将后缀改为.c,特此谨记

3.6如何应对资源管理器没有或误删的情况

方法一:在这个上方直接搜索资源管理器,之后点击即可

方法二:点击视图,里面有一个解决方案资源管理器,点击即可

4.C语言的入门

4.1第一个C语言程序

4.1.1解读

在屏幕上打印出一个“666”,运行请按Ctrl+F5

1.int C语言的整数类型(后期更新整数等)
1.1为什么不用 void main

在C语言中,应该使用 int main 而不是 void main。原因如下:

  1. 标准规定:C语言标准规定 main 函数必须返回一个整数值,通常表示程序的退出状态。如果你使用 void main,你违反了C语言标准,这在一些编译器中可能不被允许,或者可能导致不确定的行为。

  2. 约定俗成int main 是C语言的标准约定,几乎所有的C编译器都支持它。其他开发者和维护者也期望看到你使用标准约定,这使得代码更具可读性和可维护性。

  3. 程序状态返回int main 允许你返回一个整数,通常为0表示程序正常退出,非零值表示程序异常退出。这种状态返回对于脚本、自动化工具和其他程序与你的程序进行交互非常有用。

  4. 可移植性:使用 int main 使你的代码更具可移植性,因为它遵循C语言的标准。如果你的代码在不同的编译器和操作系统上编译,int main 会更有保障。

所以,总结来说,int main 是更好的选择,因为它是标准的、可移植的,而且符合C语言的惯例。

2.main

main为主函数,它是程序的入口,所有程序由它开始

注:

1.main函数是程序的入口,不可或缺

2.main函数只能有一个,即便是多个.c文件,也只能有一个main函数

3.main可以在程序内的任意位置,即便前面有别的函数

4.不要把main写成mian

5.不要忘记main后边的()以及{}

6.main启动的程序运行到return函数时,会结束终止

7.main是最先执行的程序

3.printf

在屏幕上打印字符或数字的函数

用法1:

printf(“字符”)

用法2:

printf(“%占位符”,占位符的内容(多为变量))
如
printf(“%d”,a)
4.return

终止main函数,依据请看下图

如果return时没有终结,那就应该打印三个666,而此时只打印了两个,可见到return时,程序终止。

5.#include

预处理文件,程序的源代码文件先处理预处理文件,后执行main函数,同时printf能使用的原因是因为有<stdio.h>。

stdio.h为头文件

6.杂项

1.每个语句结束后都要输入分号→ ;

2.C语言中不要使用中文符号,要使用英文符号

4.2占位符大全

  1. %d:用于格式化整数输出。

  2. %i:也用于格式化整数输出,可以识别带有前缀的八进制和十六进制数。

  3. %u:用于格式化无符号整数输出。

  4. %o:用于格式化八进制整数输出。

  5. %x:用于格式化十六进制整数输出(小写字母)。

  6. %f:用于格式化浮点数输出。

  7. %e:用于格式化科学计数法表示的浮点数输出(小写字母e)。

  8. %g:用于格式化浮点数输出,根据值的大小自动选择 %f%e

  9. %c:用于格式化字符输出。

  10. %s:用于格式化字符串输出。

  11. %p:用于格式化指针输出,通常用于输出内存地址。

  12. %n:用于将字符数的计数结果存储在参数中。

  13. %%:用于输出百分号字符 % 本身,而不是作为占位符处理。

4.3库函数

由C语言厂商提供标准,编译器厂商提供函数,如:printf,scanf....

这些函数集成为一个库叫做:标准库,里面的函数叫库函数

4.4关键字

常用的关键字如下列

auto  break  case  char
const continue default
do double else enum
extern float for goto
if int long register return
short signed sizeof struct
switch typedef union unsigned
void volatile while
注:不同的C语言标准会删除或添加部分关键字

先介绍部分关键字:

4.4.1关键字之整形
1.短整型

short

2.整形

int

3.长整型

long

4.单精度浮点型

float

5.双精度浮点型

double

6.字符

char

定义一个字符需要单引号引起来,如char ch={‘j’},ch为标识符,每个初始化变量都需要一个标识符

7.标识符注意点

  1. 标识符可以包含字母(大写和小写)、数字(0-9)和下划线(_)。
  2. 标识符必须以字母或下划线开头,不能以数字开头。
  3. 标识符对大小写敏感,即大小写字母被视为不同的字符。
  4. 标识符不能包含空格或特殊字符(如@、#、$等)。
  5. 不能以数字开头,中间不能有空格,不能为关键字。

4.4.2字符与ASCII码值

ASCLL码值和字符可以实现互换,方便信息之间的沟通

利用此图可以实现字符与数组之间的运算。

4.5字符串

单引号引起的是字符,双引号引起的才是字符串

1.有两种打印方式
1.无占位符形
printf(“hhhhhh”)
2.有占位符形
char s={"hhhhh"}
printf("%s",s)

注:切记%s为字符串占位符,%c为字符占位符,二者并不相同

2.字符串性质

1.例:“asdf”这类字符串,并非只存在四个元素,在末尾还会有一个\0

\0是字符串的结束标志,在打印时并不会打印。

2.字符数组

形如:char arr[5]={'0'}为数组字符,即为在数组里存入字符[]括号内部表示能存放多少个字符

3.字符串和字符的区别

在字符时用字符串的占位符可以看到,它会产生乱码,而abc便不会,这其中就因为当打印字符数组时,没有\0,所以无法终止,形成乱码直至终结,而字符串数组则不同,他有\0所以不会有问题,依据如下

字符型

字符串型

4.如何解决

在字符型数组里加入‘\0’

4.6转义字符

解释:转变原本意义的字符如:\0,\n....

\就是转义的符号

  1. \n:换行符(New Line)
  2. \r:回车符(Carriage Return)
  3. \t:制表符(Tab)
  4. \\:反斜杠(Backslash)
  5. \':单引号(Single Quote)
  6. \":双引号(Double Quote)
  7. \0:空字符(Null)
  8. \b:退格(Backspace)
  9. \f:换页符(Form Feed)
  10. \a:警报(Alert)
  11. \v:垂直制表符(Vertical Tab)
  12. \?:问号,用于处理某些编码环境中的特殊字符
  13. \ddd:表示八进制数字
  14. \xdd:表示十六进制数字

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值