【C语言】/*C语言常见概念*/

news2024/12/25 23:47:56

目录

前言

一、C语言是什么

二、初识编译和链接

三、什么是可执行程序

四、什么是编译器

五、什么是集成开发环境

六、mian函数的特点

七、什么是关键字

八、标识符的命名规则是什么

九、字符和ASCII码表

十、字符串和\0

十一、转义字符

十二、注释


前言

本篇文章解决的问题:

1. C语言是什么,常见的计算机语言有哪些,C语言为什么会被发明出来

2. 为什么要进行编译和链接,编译和链接的大概过程是怎样的

3. 什么是可执行程序

4. 什么是编译器,常见的编译器有哪些

5. 什么是集成开发环境IDE,常见的集成开发环境有哪些

6. C语言中的main函数有什么特点

7. 什么是关键字,常见的关键字有哪些

8. 标识符的命名规则是什么

9. 字符是什么,常量字符怎么写,ASCII码表是什么,需要记住的ASCII码值有哪些

10.什么是字符串,怎样打印一个字符串,字符串中的\0是用来做什么了

11. 转义字符是什么,经常使用的转义字符有哪些

12. 怎样注释C语言中的代码

一、C语言是什么

1. 概念:人与人交流使用的是自然语言,人与计算机交流使用的是计算机语言,C语言就是计算机语言中的一种。

2. 常见的计算机语言:C/C++/Java/Python等。

3. C语言最初是作为Unix操作系统的开发工具而被发明的。

4. 常见的操作系统:windows、linux、MacOs、Unix等。

5. 在TIOBE index网站中可以看到每年各种计算机语言的排名情况:TIOBE Index - TIOBE

二、初识编译和链接

1. 为什么要进行编译和链接?

    答:C语言是一门编译型的计算机语言,python是一门解释型的计算机语言。C语言源代码存储在(.c)为后缀的文本文件中,文本文件是不能够被直接执行的,必须通过编译器的编译和链接器的链接生成二进制的可执行程序,可执行程序才能够被执行。

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

    答:一个工程一般会由多个源文件组成,每个源文件都会单独经过编译器的处理生成对应的(.obj)为后缀的目标文件,这些目标文件和链接库会经过链接器的处理最终生成一个(.exe)为后缀的可执行程序。

三、什么是可执行程序

1. 问:什么是可执行程序?

    答:我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行  程序。在 Windows 下,可执行程序的后缀有(.exe)和(.com),其中 .exe 比较常见;在类UNIX 系统(Linux、Mac OS 等)下,可执行程序没有特定的后缀,系统会根据文件的头部信息来判断是否为可执行程序。

四、什么是编译器

1. 问:什么是编译器?

    答:C语言代码由固定的词汇按照固定的格式组织起来,简单直观,程序员容易识别和理解,但是对于CPU,C语言代码就是天书,根本不认识,CPU只认识几百个二进制形式的指令。这就需要一个工具,能够将C语言代码转换成CPU能够识别的二进制指令,这个工具就是编译器(内置了上文所说的编译器和连接器的作用)。

2. 常见的编译器:msvc、clang、gcc等。

五、什么是集成开发环境

1. 问:什么是集成开发环境?

    答:实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如:

编辑器:用来编写代码,并且给代码着色,以方便阅读;

代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程;

调试器:观察程序的每一个运行步骤,发现程序的逻辑错误;

           这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio(集成了msvc)、DevC++(集成了gcc)、Xcode(集成了clang) 等,它们统称为集成开发环境(IDE)。

六、mian函数的特点

1. 特点:① main函数是程序的入口。

               ② main函数有且仅有一个 (即使一个项目中有多个(.c)文件,但main函数只能有一个,因为程序的入口只能有一个)。

七、什么是关键字

1. 问:什么是关键字?

    答:C语⾔中有⼀批保留的名字的符号,⽐如:int 、if 、return,这些符号被称为保留字或者关键字。

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

3. 常见的32个关键字:

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

4. 注:C 关键词 - cppreference.com(C语⾔关键字的全部介绍)

八、标识符的命名规则是什么

1. 标识符的命名规则:只能由字母、数字、下划线组成,且开头只能是字母或下划线。

九、字符和ASCII码表

1. 字符的概念:在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。

2. ASCII码表的由来:在计算机中所有的数据都是以⼆进制的形式存储的,为了更好的存储字符,美国国家标准协会(ANSI)出台了⼀个标准 ASCII 编码表,给每个字符都编了号,在存储字符是,直接存储它对应的ASCII码编号即可。

3. 最初的ASCII码表有128个字符,十进制编号为0~127。

4. 需要记住的标号有:

    ① 字符A~Z的ASCII码值从65~90

    ② 字符a~z的ASCII码值从97~122

    ③ 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32

    ④ 数字字符0~9的ASCII码值从48~57

    ⑤ 换⾏ \n 的ASCII值是:10

    ⑥ • 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察

十、字符串和\0

1. 字符串的概念:使⽤双引号括起来的⼀串字符就被称为字符串,如:"abcdef",就是⼀个 字符串,字符串的打印格式可以使⽤ %s 来指定,也可以直接打印,例如:

- printf("%s\n", "hello"); 

- char arr[] = "hello"; printf("%s\n", arr);

- printf("hello");

2. C语⾔字符串中⼀个特殊的知识,在字符串的末尾隐藏放着⼀个 \0 字符,这个 \0 字符是字符串的结束标志。

十一、转义字符

1. 转义字符就是转变了原来意义的字符。

2. 常见的普通转义字符:

    ① \? :在书写连续多个问号时,为了防止它们被解析成三字母词,通常会在?前加反斜杠

    ② \'  :在打印字符单引号时,可防止单引号与字符常量表示形式的单引号相匹配

    ③ \" :在字符串中含双引号时,可防止双引号与字符串表示形式的双引号相匹配

    ④ \\ :为了使反斜杠只是反斜杠的意思,而不被编译器误认为与后面的字符配对表示一个转移字符,通常在输出路径时常会用到,例如:printf("c:\\test\\test.c");

3. 特殊转移字符:(可以理解为字符的8进制或16进制表示形式)

    ① \ddd:ddd表示1~3个八进制数字,如'\130',表示字符X,printf("%c", '\130');//打印X

    ② \xdd:dd表示2个十六进制数字,如'\x30',表示字符0

    补充:\0:null字符,代表没有内容,ASCII码值是0,它也是\ddd的一种而已。

 十二、注释

1. 注释是对代码的说明,可以帮助我们更好的理解代码,注意不要注释过度。

2. 注释的两种表示形式:

    ① /**/:这种注释可以插在行内,int fopen(char* s /* file name */, int mode);

        优点:方便一次注释多行。

        缺点:不支持嵌套注释,因为/* 开始注释后,遇到第⼀个 */ 就认为注释结束了。

    ② //:双斜杠到⾏尾都属于注释

        优点:没有嵌套注释的概念

        缺点:不太方便一次注释多行 (不过开发环境提供了相关的快捷键)

3. 注意1:不管是哪⼀种注释,都不能放在双引号⾥⾯,因为双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤。

    注意2:编译时,注释会被替换成⼀个空格,所以 min/* 这⾥是注释*/Value 会变成

min Value ,⽽不是 minValue,不要在标识符内部写注释!。

  本篇文章已完结,谢谢支持!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1638947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[蓝桥杯2024]-PWN:fd解析(命令符转义,标准输出重定向,利用system(‘$0‘)获取shell权限)

查看保护 查看ida 这里有一次栈溢出,并且题目给了我们system函数。 这里的知识点没有那么复杂 方法一(命令转义): 完整exp: from pwn import* pprocess(./pwn) pop_rdi0x400933 info0x601090 system0x400778payloa…

力扣刷题第0天:只出现一次的数字

目录 第一部分:题目描述 ​第二部分:题目分析 第三部分:解决方法 3.1思路1: 双指针暴力求解 3.2 思路2:异或运算 第四部分:总结收获 第一部分:题目描述 第二部分:题目分析 由图片分析可得,该题目对算法时间复杂度有一定的要求时间复杂度为O(N)&a…

VBA数据库解决方案第十讲:Recordset记录集合的动态查询显示结果

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

爬虫学习:基本网络请求库的使用

目录 一、urllib网络库 1.urlopen()方法 2.request方法 二、requests网络请求库 1.主要方法 2.requests.get()和requests.post() 一、urllib网络库 1.urlopen()方法 语法格式: urlopen(url,data,timeout,cafile,capath,context) # url:地址 # data:要提交的数据…

编程题库-Python、Java、C++、C 应有尽有!!!

目录 网址注册账号题库 网址 传送门 http://oj.ecustacm.cn/ 这个↑链接是网站 注册账号 刚进去是这个页面 注册一个账号 题库 点击上方的问题菜单,进入题库 点击题目标题进入题目,我就随便点一道 这里面一般会有样例输入和输出以及题目描述 点…

网络安全 SQLmap-tamper的使用

目录 使用SQLmap Tamper脚本 1. 选择合适的Tamper脚本 2. 在命令行中使用Tamper脚本 3. 组合使用Tamper脚本 4. 注意和考虑 黑客零基础入门学习路线&规划 网络安全学习路线&学习资源 SQLmap是一款强大的自动化SQL注入和数据库取证工具。它用于检测和利用SQL注入漏…

# 从浅入深 学习 SpringCloud 微服务架构(七)Hystrix(3)

从浅入深 学习 SpringCloud 微服务架构(七)Hystrix(3) 一、hystrix:通过 Actuator 获取 hystrix 的监控数据 1、Hystrix 的监控平台介绍: 1)Hystrix 除了实现容错功能,Hystrix 还…

【JAVA基础之多线程】多线程案例以及自定义线程池

🔥作者主页:小林同学的学习笔录 🔥mysql专栏:小林同学的专栏 目录 1.多线程 1.1 概述 1.2 并发和并行 1.3 进程和线程 1.4 多线程的实现 1.4.1 继承Thread类 1.4.2 实现Runnable接口 1.4.3 实现Callable接口 1.4.4 总结 …

Flask 3 保姆级教程(一):快速上手

一、创建项目 PyCharm 中新建项目 创建完成后会出现这么个项目 以下是代码解析: # 导入了 Flask 类 from flask import Flask# 创建了一个 Flask web 应用的实例,并将其赋值给变量 app # __name__ 是一个特殊的 Python 变量,它表示当前模块…

Educational Codeforces Round 165 (Rated for Div. 2 ABCDE 题)视频讲解

A. Two Friends Problem Statement Monocarp wants to throw a party. He has n n n friends, and he wants to have at least 2 2 2 of them at his party. The i i i-th friend’s best friend is p i p_i pi​. All p i p_i pi​ are distinct, and for every i ∈…

一文全面了解 wxWidgets 布局器(Sizers)

目录 Sizers背后的理念 共同特征 最小大小 边框 对齐方式 伸缩因子 使用 Sizer 隐藏控件 wxBoxSizer wxStaticBoxSizer wxGridSizer wxFlexGridSizer 布局器(Sizers),由wxWidgets类层次结构中的wxSizer类及其派生类表示&#xff0…

社会信用示范城市信用代码和虚拟变量(1990-2022年)

01、数据介绍 数据名称:社会信用示范城市信用代码和虚拟变量 数据年份:1990-2022年 计算说明: 数据来源: 时间跨度:1990-2023 年 区域范围:上市公司所属城市范围 参考文献: [1]曹雨阳,孔东…

树莓派控制步进电机(下):软件编程

目录 说明 软件编程 树莓派的RPI编程 基本测试程序 参考文献 说明 在上一篇博文中我们介绍了树莓派控制步进电机所需要的硬件连接,本篇博文主要介绍软件编程。这里我们使用的是树莓派4B开发板,步进电机为6线两相步进电机,驱动器采用的是…

【强训笔记】day6

NO.1 思路:因为存的字符串高位存放的是低下标,所以输出的字符串必须先翻转。 代码实现: class Solution { public:string solve(string s, string t) {string ret;int is.size()-1,jt.size()-1;int tmp0;while(i>0||j>0||tmp){if(i&…

【C++】学习笔记——模板

文章目录 三、内存管理4. operator new与operator delete函数5. new 和 delete 的实现原理1. 内置类型2. 自定义类型3. malloc/free和new/delete的区别 四、模板初阶1. 泛型编程模板实例化 未完待续 三、内存管理 4. operator new与operator delete函数 我们之前学到&#xf…

富唯智能案例|双3D相机引导衔架抓取铝型材

随着制造业的快速发展和自动化水平的不断提升,铝型材的自动化抓取和加工成为行业内的一大技术难题。铝型材因其轻便、耐腐蚀、易加工等特点,广泛应用于建筑、汽车、电子等领域。然而,铝型材的形状多样、尺寸不一,以及生产线上的高…

Spring Cloud——LoadBalancer

Spring Cloud——LoadBalancer 一、负载均衡(LoadBalance)1.LoadBalancer本地负载均衡客户端 VS Nginx服务端负载均衡区别 二、LoadBalancer1.Spring RestTemplate as a LoadBalancer Client2.编码使用DiscoveryClient动态获取所有上线的服务列表3.从默认…

详细分析Java中的脱敏注解(附Demo)

目录 前言1. 基本知识2. 核心逻辑3. Demo4. 模版 前言 对于隐私信息,需要做特殊处理,比如身份证或者手机号等 对于Java的相关知识推荐阅读:java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全) 1. 基本知…

【4/26-4/30】 Arxiv安全类文章速览

4/26 标题: Merchants of Vulnerabilities: How Bug Bounty Programs Benefit Software Vendors 作者: Esther Gal-Or, Muhammad Zia Hydari, Rahul Telang摘要: 软件漏洞允许恶意黑客利用,威胁系统和数据安全。本文研究了激励道德黑客发现并负责任地向软件供应商披…

[PS小技能学习]抠图和切图

详情见视频教程:PS小技巧--抠图与切图 今天我们来学习如何使用PS对表情包合辑进行抠图和裁剪保存 1、首先,将图片导入,双击图层新建一个图层 2、然后点击工具栏的魔棒工具,再点击顶部菜单栏的添加到选区 3、点击图片的空白区域即…