C语言常见概念

news2025/1/12 3:46:15

目录

1. C语言是什么?

2. C语言的历史  

3 编译和链接

4. VS项目和源文件、头文件介绍​编辑

5.创建项目

6.main函数​编辑

 7. printf和库函数

8. 关键字介绍

9. 字符和ASCII编码

10. 字符串和\0


1. C语言是什么?

人和计算机交流的语言工具,C语言就是众多计算机语言中的一种 人->计算机语言->计算机

人们是通过计算机语言写的程序,给计算机下达指令,让计算机工作

2. C语言的历史  

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

3 编译和链接

由于C语言是一门编译型计算机语言,源代码都是文本文件,但是文本文件本身无法执行,必须

通过编译器翻译链接器的链接生成二进制的可执行文件,可执行文件才能被执行。

1)计算机只能识别二进制指令

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

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

4. VS项目和源文件、头文件介绍

C语言把.c 为后缀的文件称为源文件,

把.h 为后缀的文件称为头文件

5.创建项目

以下为VS2022 创建项目过程

在此可以进行编写C语言 如果需要调用库函数要包含头文件#include <stdio.h>                                                                  快捷键 ctrl + F5 进行编译链接(VS2022)

6.main函数

C 语言程序是从main 函数开始执行的, main函数

是程序的入口且仅有一个,即使一个项目中有多个

.c文件,但是只能有一个main函数

main 函数也被叫做:主函数。main 前面的int表示

main 函数执行结束的时候返回一个整型类值,所以

在main 函数的最后写return 0; 正好前后呼应。

 7. printf和库函数
printf("hello C\n");

代码中使用了printf 函数,实现了在屏幕上的信息的打印。

printf 是一个库函数,它的功能是在标准输出设备(一般指屏幕)上进行信息的打印。上面的代码

是使用 printf 函数打印字符串。只要把想要打印的一串字符放在双引号中并传递给printf函数就可以

打印。 如下

int n = 100;
printf("%d\n", n); //printf打印整型
printf("%c\n", 'q'); //printf打印字符
printf("%lf\n", 3.14); //printf打印双精度浮点型

这里的%d , %c 等是占位符,会被后边的值替换。记得调用库函数时要包含头文件 #include <stdio.h>

什么是库函数?

为了不再重复实现常见的代码,提升开发效率,C语言标准规定了一组函数,这些

函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了一个函数库,

也被称为标准库,这些函数也被称为库函数

一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用,要包含对应的头文件。

8. 关键字介绍

1)关键字都有特殊的意义,是保留给C语言使用的

2)程序员自己在创建标识符的时候是不能和关键字重复的

3)关键字也是不能自己创建的

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

注:在C99标准中加入了inline 、restrict 、_Bool 、_Comploex 、_Imaginary 等关键字。

9. 字符和ASCII编码

因为计算机中所有的数据都是以二进制的形式存储的,通过给每个字符编一个二进制序列(编码)

如a ->97 b->98       dec->十进制           oct->八进制           hex->十六进制          ch->字符

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

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

3)对应的大小写字符(a和A)的ASCII码值的差值是32

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

5)换行 \n 的ASCII值是:10

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

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

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

 从空格开始打印

10. 字符串和\0

使用双引号括起来的一串字符就被称为字符串,如:"abcdef",就是一个字符串。

字符串的打印格式可以使用 %s 来指定。          \n->换行符

#include <stdio.h>
int main()
{
    printf("%s\n", "hello C");
    printf("hello c");
    return 0;
}

C语言字符串末尾隐藏放着一个 \0 字符   通过监视窗口观察

对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏一个 \0 转

义字符, \0 是字符串的结束标志。所以我们在使用库函数printf() 打印字符串或者strlen() 计算字符

串长度的时候,遇到 \0 的时候就自动停止了。

C语言中也可以把一个字符串放在一个字符数组中,我们在这里利用下面的代码验证一下\0 的功

能。

#include <stdio.h>
int main()
{
    char arr2[] = "abc"; //arr2数组中存放字符串
    char arr1[] = {'a', 'b', 'c'};//arr1数组中存放3个字符
    return 0;
}

 

接下来通过printf打印字符数组arr1和arr2到屏幕后

这是因为\0是结束标志 printf遇到\0 后停止打印 如果没有遇到\0 便会进行越界访问 至到遇到\0停止

printf("%s\n", "abc\0def");

 同理 这只会在屏幕上打印 abc

谢谢观看!

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

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

相关文章

CVD-Risk-Prevent 个性化心血管健康推荐系统:基于医学指南的规则框架与 LLM 的结合

CVD-Risk-Prevent 个性化心血管健康推荐系统&#xff1a;基于医学指南的规则框架与 LLM 的结合 提出背景推荐算法的选择选择疑问健康指标管理心血管风险因素目标设定实现目标的计划推荐的多维性 算法关键点&#xff1a;如何将心血管健康指标转换为多维推荐&#xff1f;确定风险…

热备路由HSRP与VRRP

一、什么是HSRP HSRP&#xff08;Hot Standby Router Protocol&#xff09;是Cisco的专有协议&#xff0c;用于实现网络中路由器的冗余和故障转移。通过HSRP&#xff0c;可以将多台路由器组成一个“热备份组”&#xff0c;形成一个虚拟路由器。在这个组内&#xff0c;只有一个…

理解Netty的核心概念

一、理解Netty Netty是一个用于开发高性能网络应用的框架。为了更容易理解它&#xff0c;下面一些描述&#xff0c;不一定准确&#xff0c;但一定容易理解。 从Netty的Channel开始&#xff0c;把Netty所有的核心概念都串起来。 Channel 简单理解为一个连接。 有一个特殊的C…

Datadog Dash 2024 新功能解析

Datadog 2024 年的 Dash 刚刚落下帷幕&#xff0c;作为正在与 Datadog 开始竞争的观测云&#xff0c;我们认真仔细的分析了 Datadog 的每一个新功能&#xff0c;发现一些很有意思的事情&#xff0c;今天就给大家做一次全面的分析。&#xff08;所有 Datadog 的 Dash 的最新功能…

《UDS协议从入门到精通》系列——图解0x86:事件响应

《UDS协议从入门到精通》系列——图解0x86&#xff1a;事件响应 一、简介1.1 什么是事件响应&#xff1f;跟其他服务有何不同&#xff1f;1.2 到底如何理解事件响应机制&#xff1f;1.3 使用事件响应机制有哪些注意点&#xff1f; 二、数据包格式三、通信示例 Tip&#x1f4cc;…

VBA通过Range对象实现Excel的数据写入

前言 本节会介绍通过VBA中的Range对象&#xff0c;来实现Excel表格中的单元格写入、区域范围写入&#xff0c;当然也可以写入不同类型的数据&#xff0c;如数值、文本、公式&#xff0c;以及实现公式下拉自动填充的功能。 一、单元格输入数据 1.通过Value方法实现输入不同类型…

去中心化社会的崛起:探索区块链对社会结构的影响

随着区块链技术的发展和应用&#xff0c;我们正逐步迈向一个去中心化的社会结构。本文将深入探讨区块链技术如何影响社会结构&#xff0c;从经济、政治到文化等多个方面进行探索和分析&#xff0c;揭示其可能带来的革命性变革。 1. 区块链技术的基本原理回顾 1.1 分布式账本与…

从 ClickHouse 到 Apache Doris:快成物流的数智化货运应用实践

导读&#xff1a;随着快成物流的大宗商品产业链的不断发展&#xff0c;货运轨迹规划和实时数据分析的需求日益迫切&#xff0c;为了保障数据报表更新、用户画像圈选与物流轨迹实时更新等大数据核心系统性能&#xff0c;快成物流引入 Apache Doris 实时数仓升级了大数据算法平台…

vue2使用use注册自定义指令实现输入控制与快捷复制

使用场景 在一些form表单填写内容的时候&#xff0c;要限制输入的内容必须是数值、浮点型&#xff0c;本来el-input-number就可以实现&#xff0c;但是它本身带那个数值控制操作&#xff0c;等一系列感觉不舒服的地方。如果只是使用el-input该多好&#xff0c;只要监听一下输入…

docker安装ElasticSearchKibana

本文参考以下两篇文章 ✅ElasticSearch&Kibana 部署 云效 Thoughts 企业级知识库 (aliyun.com) docker安装ElasticSearch&Kibana - 飞书 安装elasticsearch 使用docker下载es&#xff1a; docker pull elasticsearch:8.13.0 挂载配置 创建挂在文件目录 mkdir…

AIGC在软件开发中的应用

目录 1. AIGC技术概述1.1 定义与背景1.2 发展历程 2. AIGC在软件开发中的应用2.1 代码生成2.2 错误检测与修复2.3 自动化测试 3. AIGC对开发者职业前景的影响3.1 助力与赋能开发者代码示例&#xff1a;自动化测试 3.2 技能需求转变与职业转型压力代码示例&#xff1a;AIGC辅助的…

云原生技术架构详解

云原生技术最全详解(图文全面总结) 容器技术 容器技术&#xff1a;是将应用程序、及其所有依赖项&#xff0c;打包到一个独立的、可移植的容器中。 如下图所示: 容器技术的实现&#xff0c;最典型的就是以Docker为代表的。 如下图所示&#xff1a; 主要解决&#xff1a; 1、…

#LinuxC高级 笔记一

linux命令 什么是嵌入式&#xff1f; 以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软件硬件可裁剪&#xff0c;适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统 计算机系统组成&#xff1f; 硬件、软件 操作系统&#xff1f; ios windows harmo…

Docker的架构原理

例子可以想象成一个买手机的场景 clien可以想象 你个人 docker deamon &#xff1a;店员 images&#xff1a; 样机 regisitry&#xff1a; 手机仓库 container: 使用的手机 首先我要在店员买一个手机&#xff0c;店员发现是样机&#xff0c;但是仓库有&#xff0c;&…

Zabbix 配置端口监控

Zabbix 端口监控简介 在Zabbix中配置端口监控&#xff0c;可以帮助你实时监控服务器或网络设备上的特定端口是否开放和可访问。Zabbix提供了多种方式来监控端口&#xff0c;主要包括简单的端口可用性检查和更复杂的服务监控。 在Zabbix中进行端口监控时&#xff0c;不一定需要…

小白尝试某程机票信息爬取

实训课需要机票数据集&#xff0c;网上没有&#xff0c;所以我选择爬取数据 此过程可谓经历的九九八十一难&#xff0c;也参考了不少大佬的文章&#xff0c;在此特别记录一下 弯路不多说&#xff0c;我直接讲成功的方法 找到请求url 通过控制台&#xff0c;最后确认下面的 …

C# 编程中互斥锁的使用

C# 中的互斥锁 互斥锁是 C# 中使用的同步原语&#xff0c;用于控制多个线程或进程对共享资源的访问。其目的是确保在任何给定时间只有一个线程或进程可以获取互斥锁&#xff0c;从而提供互斥。 C# 中互斥锁的优点 可以使用互斥锁 (Mutex) 并享受其带来的好处。 1. 共享资源…

使用 PCA 可视化数据的分类能力

使用 PCA 探索数据分类的效果&#xff08;使用 Python 代码&#xff09; 「AI秘籍」系列课程&#xff1a; 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 主成分分析 (PCA) 是数据科学家使用的绝佳工具。它可用于降低特征…

LabVIEW自动探头外观检测

开发了一套基于LabVIEW的软件系统&#xff0c;结合视觉检测技术&#xff0c;实现探头及连接器外观的自动检测。通过使用高分辨率工业相机、光源和机械手臂&#xff0c;系统能够自动定位并检测探头表面的细微缺陷&#xff0c;如划痕、残胶、异色、杂物等。系统支持多种探头形态&…

机器学习简介--NLP(二)

机器学习简介 机器学习简介机器学习例子机器学习分类有监督学习有监督学习的应用 无监督学习 机器学习常见概念数据集k折交叉验证过拟合欠拟合评价指标 机器学习简介 机器学习例子 问题&#xff1a; 2&#xff0c;4&#xff0c;6&#xff0c;8&#xff0c;&#xff1f;&#…