当前位置: 首页 > news >正文

【C语言】(1)初识C语言

什么是C语言

C语言是一种广泛应用的计算机编程语言,它具有强大的功能和灵活性,使其成为系统编程和底层开发的首选语言。C语言的设计简洁、高效,且不依赖于特定的硬件或系统,因此在各种计算平台上都能稳定运行。

C语言的特点

  • 高效性能:C语言接近硬件层次,运行效率高。
  • 灵活性:提供了丰富的运算符和数据类型。
  • 可移植性:C语言编写的程序可以在多种计算机平台上运行,只需少量修改。
  • 系统编程:适用于操作系统、驱动程序等底层开发。
  • 简洁的核心语言:核心语言小而强大,提供了结构化编程的所有基础。

语言标准:ANSI C

ANSI C是美国国家标准协会(ANSI)制定的C语言标准,目的在于确保C语言的可移植性和一致性。这个标准定义了C语言的核心语法和库,是所有C编译器和平台必须遵循的基本规范。

计算机语言的演变

计算机语言的发展经历了从低级到高级的过程:

  • 二进制代码:最初的计算机语言,直接用二进制表示指令。
  • 汇编语言:用助记符代替二进制代码,但仍然依赖于具体硬件。
  • 高级语言:如C语言,更接近人类语言,不依赖于特定硬件,易于理解和使用。

常用的C语言编译器

  • GCC (GNU Compiler Collection):一种免费、开源的编译器,广泛用于各种操作系统。
  • Clang:另一种流行的开源编译器,以其优异的性能和诊断信息著称。
  • MSVC (Microsoft Visual C++):微软开发的编译器,通常与Visual Studio集成。
  • Turbo C:早期广泛使用的编译器,特别是在学习和教育中。
  • WIN-TC:Windows平台上的一个Turbo C版本。

集成开发环境(IDE):Visual Studio

Visual Studio是微软开发的一个集成开发环境,内置了MSVC编译器。它提供了一个完整的开发环境,包括代码编辑、编译、调试和项目管理等功能,非常适合C语言的开发。

C语言文件类型

在C语言中,主要有两种类型的文件:

  1. 源文件:以 .c 为扩展名的文件,包含C语言的源代码。这是程序的主体,包含了执行指令和算法。

    示例:example.c

  2. 头文件:以 .h 为扩展名的文件,通常包含函数声明、宏定义和类型定义等。头文件用于提供源文件所需的信息,但本身不包含执行代码。

    示例:example.h

HelloWorld

main函数

在C语言中,main 函数是程序执行的入口点。一个程序只能有一个 main 函数。这个函数在程序启动时被调用,并在程序结束时返回一个整数值。

下面是一个典型的 main 函数示例:

#include <stdio.h>  // 引入标准输入输出头文件  
int main() {  // main函数声明     
printf("Hello World!");  // 打印输出     
return 0;  // 返回值,通常返回0表示成功 
}

编译和运行C程序

在大多数集成开发环境(IDE)中,如Visual Studio,可以使用快捷键 Ctrl+F5 来编译、链接并运行C语言代码。这个操作会触发以下步骤:

  1. 编译:将C源文件(.c 文件)转换为机器语言。
  2. 链接:将编译后的代码与其他代码和库文件链接在一起,形成可执行文件。
  3. 运行:启动程序并在控制台或终端中显示输出。

注释

注释是用来增强代码的可读性,为其他阅读者或未来的自己提供关于代码的解释和说明。注释不会被编译器执行,因此它们不会影响程序的功能。

注释的种类

C语言中主要有两种类型的注释:

  1. 单行注释:以两个斜杠 // 开始,直到行尾结束。适用于简短的代码说明。

  2. 多行注释:以 /* 开始,以 */ 结束。可以跨越多行,适用于较长的描述或临时禁用代码块。

如何使用注释

单行注释

单行注释通常用于简短说明或注明作者、日期等信息。例如:

// 计算两数之和
int sum = num1 + num2;
多行注释

多行注释用于提供详细说明,或临时禁用一段代码。例如:

/*作者:张三日期:2022-01-01描述:这个函数用于计算两个整数的和
*/
int add(int a, int b) {return a + b;
}

多行注释也可以用于临时禁用代码:

/*
printf("这行代码被注释了,不会执行");
*/

注意事项

  • 在多行注释内部不能嵌套另一个多行注释。
  • 适当地使用注释能够大大提升代码的可维护性和可读性。

相关文章:

【C语言】(1)初识C语言

什么是C语言 C语言是一种广泛应用的计算机编程语言&#xff0c;它具有强大的功能和灵活性&#xff0c;使其成为系统编程和底层开发的首选语言。C语言的设计简洁、高效&#xff0c;且不依赖于特定的硬件或系统&#xff0c;因此在各种计算平台上都能稳定运行。 C语言的特点 高…...

SpringCloudStream整合MQ(待完善)

概念 Spring Cloud Stream 的主要目标是各种各样MQ的学习成本&#xff0c;提供一致性的编程模型&#xff0c;使得开发者能够更容易地集成消息组件&#xff08;如 Apache Kafka、RabbitMQ、RocketMQ&#xff09; 官网地址&#xff1a;Spring Cloud Stream 组件 1. Binder 2…...

【Java 数据结构】包装类简单认识泛型

包装类&简单认识泛型 1 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱 2 什么是泛型3 引出泛型3.1 语法 4 泛型类的使用4.1 语法4.2 示例4.3 类型推导(Type Inference) 5 泛型如何编译的5.1 擦除机制5.2 为什么不能实例化泛型类型数组 6 泛型…...

第139期 做大还是做小-Oracle名称哪些事(20240125)

数据库管理139期 2024-01-25 第139期 做大还是做小-Oracle名称哪些事&#xff08;20240125&#xff09;1 问题2 排查3 扩展总结 第139期 做大还是做小-Oracle名称哪些事&#xff08;20240125&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Oracle A…...

驱动开发--多路复用-信号

一、多路复用 每个进程都有一个描述符数组&#xff0c;这个数组的下标为描述符&#xff0c; 描述符的分类&#xff1a; 文件描述符&#xff1a;设备文件、管道文件 socket描述符 1.1 应用层&#xff1a;三套接口select、poll、epoll select&#xff1a;位运算实现 监控的描…...

LeetCode 2859. 计算 K 置位下标对应元素的和【位操作】1000

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

composer安装hyperf后,nginx配置hyperf

背景 引入hyperf项目用作微服务&#xff0c;使用composer 安装hyperf后&#xff0c;对hyperf进行nginx配置。 配置步骤 因为hyperf监听的是端口&#xff0c;不像其他laravel、lumen直接指向文件即可。所有要监听端口号。 1 配置nginx server {listen 80;//http&#xff1a…...

Flink对接Kafka的topic数据消费offset设置参数

scan.startup.mode 是 Flink 中用于设置消费 Kafka topic 数据的起始 offset 的配置参数之一。 scan.startup.mode 可以设置为以下几种模式&#xff1a; earliest-offset&#xff1a;从最早的 offset 开始消费数据。latest-offset&#xff1a;从最新的 offset 开始消费数据。…...

TryHackMe-Umbrella

靶场介绍 Breach Umbrella Corp’s time-tracking server by exploiting misconfigurations around containerisation. 利用集装箱化的错误配置&#xff0c;破坏Umbrella公司的时间跟踪服务器。 Task 1 What is the DB password? 数据库的密码是多少&#xff1f; 端口扫描&am…...

Excel导出警告:文件格式和拓展名不匹配

原因描述&#xff1a; Content-Type 原因&#xff1a;Content-Type&#xff0c;即内容类型&#xff0c;一般是指网页中存在的Content-Type&#xff0c;用于定义网络文件的类型和网页的编码&#xff0c;决定文件接收方将以什么形式、什么编码读取这个文件&#xff0c;这就是经常…...

kafka集群和Filebeat+Kafka+ELK

一、Kafka 概述 1.1 为什么需要消息队列&#xff08;MQ&#xff09; 主要原因是由于在高并发环境下&#xff0c;同步请求来不及处理&#xff0c;请求往往会发生阻塞。比如大量的请求并发访问数据库&#xff0c;导致行锁表锁&#xff0c;最后请求线程会堆积过多&#xff0c;从…...

golang map真有那么随机吗?——map遍历研究

在随机选取map中元素时&#xff0c;本想用map遍历的方式来返回&#xff0c;但是却并没有通过测试。 那么难道map的遍历并不是那么的随机吗&#xff1f; 以下代码参考go1.18 hiter是map遍历的结构&#xff0c;主要记录了当前遍历的元素、开始位置等来完成整个遍历过程 // A ha…...

详细分析对比copliot和ChatGPT的差异

Copilot 和 ChatGPT 是两种不同的AI工具&#xff0c;分别在不同领域展现出了强大的功能和潜力&#xff1a; GitHub Copilot 定位与用途&#xff1a;GitHub Copilot 是由GitHub&#xff08;现为微软子公司&#xff09;和OpenAI合作开发的一款智能代码辅助工具。它主要集成于Visu…...

TENT:熵最小化的Fully Test-Time Adaption

摘要 在测试期间&#xff0c;模型必须自我调整以适应新的和不同的数据。在这种完全自适应测试时间的设置中&#xff0c;模型只有测试数据和它自己的参数。我们建议通过test entropy minimization (tent[1])来适应:我们通过其预测的熵来优化模型的置信度。我们的方法估计归一化…...

研发日记,Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南&#xff08;一&#xff09;——Data Store Memory模块执行时序Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》 见《…...

机器人3D视觉引导半导体塑封上下料

半导体塑封上下料是封装工艺中的重要环节&#xff0c;直接影响到产品的质量和性能。而3D视觉引导技术的引入&#xff0c;使得这一过程更加高效、精准。它不仅提升了生产效率&#xff0c;减少了人工操作的误差&#xff0c;还为半导体封装技术的智能化升级奠定了坚实的基础。 传统…...

(十二)Head first design patterns代理模式(c++)

代理模式 代理模式&#xff1a;创建一个proxy对象&#xff0c;并为这个对象提供替身或者占位符以对这个对象进行控制。 典型例子&#xff1a;智能指针... 例子&#xff1a;比如说有一个talk接口&#xff0c;所有的people需要实现talk接口。但有些人有唱歌技能。不能在talk接…...

C++从零开始的打怪升级之路(day21)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前&#xff0c;我学了一点点C语言还有简单的数据结构&#xff0c;如果有小伙伴想和我一起学习的&#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于vector的题目 1.删除有序数组中的重复项 26. …...

《设计模式的艺术》笔记 - 观察者模式

介绍 观察者模式定义对象之间的一种一对多依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其相关依赖对象皆得到通知并被自动更新。 实现 myclass.h // // Created by yuwp on 2024/1/12. //#ifndef DESIGNPATTERNS_MYCLASS_H #define DESIGNPATTERNS_MYCLA…...

Java如何对OSS存储引擎的Bucket进行创建【OSS学习】

在前面学会了如何开通OSS&#xff0c;对OSS的一些基本操作&#xff0c;接下来记录一下如何通过Java代码通过SDK对OSS存储引擎里面的Bucket存储空间进行创建。 目录 1、先看看OSS&#xff1a; 2、代码编写&#xff1a; 3、运行效果&#xff1a; 1、先看看OSS&#xff1a; 此…...

ModuleNotFoundError: No module named ‘half_json‘

问题: ModuleNotFoundError: No module named ‘half_json’ 原因: 缺少jsonfixer包 解决方法: pip install jsonfixerjson修正包地址: https://github.com/half-pie/half-json...

深入探究 Android 内存泄漏检测原理及 LeakCanary 源码分析

深入探究 Android 内存泄漏检测原理及 LeakCanary 源码分析 一、什么是内存泄漏二、内存泄漏的常见原因三、我为什么要使用 LeakCanary四、LeakCanary介绍五、LeakCanary 的源码分析及其核心代码六、LeakCanary 使用示例 一、什么是内存泄漏 在基于 Java 的运行时中&#xff0…...

Linux CentOS使用Docker搭建laravel项目环境(实践案例详细说明)

一、安装docker # 1、更新系统软件包&#xff1a; sudo yum update# 2、安装Docker依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 3、添加Docker的yum源&#xff1a; sudo yum-config-manager --add-repo https://download.docker.com/linux/cen…...

第六课:Prompt

文章目录 第六课&#xff1a;Prompt1、学习总结&#xff1a;Prompt介绍预训练和微调模型回顾挑战 Pre-train, Prompt, PredictPrompting是什么?prompting流程prompt设计 课程ppt及代码地址 2、学习心得&#xff1a;3、经验分享&#xff1a;4、课程反馈&#xff1a;5、使用Mind…...

网络安全(初版,以后会不断更新)

1.网络安全常识及术语 资产 任何对组织业务具有价值的信息资产&#xff0c;包括计算机硬件、通信设施、IT 环境、数据库、软件、文档 资料、信息服务和人员等。 漏洞 上边提到的“永恒之蓝”就是windows系统的漏洞 漏洞又被称为脆弱性或弱点&#xff08;Weakness&#xff09;&a…...

开始学习Vue2(脚手架,组件化开发)

一、单页面应用程序 单页面应用程序&#xff08;英文名&#xff1a;Single Page Application&#xff09;简 称 SPA&#xff0c;顾名思义&#xff0c;指的是一个 Web 网站中只有唯一的 一个 HTML 页面&#xff0c;所有的功能与交互都在这唯一的一个页面内完成。 二、vue-cli …...

平替heygen的开源音频克隆工具—OpenVoice

截止2024-1-26日&#xff0c;全球范围内语音唇形实现最佳的应该算是heygen&#xff0c;可惜不但要魔法&#xff0c;还需要银子&#xff1b;那么有没有可以平替的方案&#xff0c;答案是肯定的。 方案1&#xff1a; 采用国内星火大模型训练自己的声音&#xff0c;然后再用下面…...

【自动化测试】读写64位操作系统的注册表

自动化测试经常需要修改注册表 很多系统的设置&#xff08;比如&#xff1a;IE的设置&#xff09;都是存在注册表中。 桌面应用程序的设置也是存在注册表中。 所以做自动化测试的时候&#xff0c;经常需要去修改注册表 Windows注册表简介 注册表编辑器在 C:\Windows\regedit…...

php二次开发股票系统代码:腾讯股票数据接口地址、批量获取股票信息、转换为腾讯接口指定的股票格式

1、腾讯股票数据控制器 <?php namespace app\index\controller;use think\Model; use think\Db;const BASE_URL http://aaaaaa.aaaaa.com; //腾讯数据地址class TencentStocks extends Home { //里面具体的方法 }2、请求接口返回内容 function juhecurl($url, $params f…...

uniapp 在static/index.html中添加全局样式

前言 略 在static/index.html中添加全局样式 <style>div {background-color: #ccc;} </style>static/index.html源码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><meta http-…...

高大上网站建设公司/电商网站对比

YAF中文文档&#xff1a;http://www.laruence.com/manual/index.html 1 YAF框架是用C开发的&#xff0c;属于PHP的扩展框架&#xff1b; 2 YAF的性能相对于源生PHP&#xff0c;性能只降低不到10%&#xff1b; 下面直接切入正题&#xff0c;如何在windows下扩展yaf并生成yaf框架…...

株洲seo优化官网/seo技术服务外包公司

CustomActionWebView 项目地址&#xff1a;CarGuo/CustomActionWebView 简介&#xff1a;自定义 webview 长按文本弹出选项&#xff0c;并且点击后返回选项与所选中的文本&#xff0c;你的 webview 不再只支持系统的复制等功能了&#xff0c;长按 web 文本实现文本一键收藏、…...

wordpress wiki插件/济南网络seo公司

一个典型的Win32窗口应用程序的框架是这样的&#xff1a; 程序入口点&#xff08;WinMain函数&#xff09;&#xff0d;&#xff0d;>注册窗口类&#xff08;调用RegisterClass函数或RegisterClassEx函数&#xff09;&#xff0d;&#xff0d;>创建主窗口&#x…...

做网站用什么环境/seo赚钱培训

未转变者是一款类似于我的世界的第一人称射击类游戏&#xff0c;玩家扮演的则是在丧失世界中还未转变成丧尸的人类。那么接下来就由小编为大家带来游戏中乘坐的载具介绍&#xff1a;民用载具Roadster 跑车可搭载玩家数: 2最高速度: 72km/h耐久值: 2000%可装载汽油: 100%评比&am…...

宁波电信网站备案/交易链接

DIV布局整理: 1、对于布局要使用DIVCSS,使页面中的结构与表现完全分离&#xff0c;结构位于html文件中&#xff0c;表现位于css文件中 2、对于要显示数据&#xff0c;特别是表格的列表形状数据的地方可以使用表格,此时用DIV可能更不好. 3、CSS里多使用Class少使用id(对于特定元…...

网站建设哪些好/南京seo排名优化公司

文章目录1.1 大数据时代为什么全球数据量 增长如此之快&#xff1f;何谓大数据&#xff1f;1.2 云计算——大数据的计算1.2.1 大数据与云计算的关系1.2.2 云计算长定义1.2.3 云计算短定义1.2.4 云计算的7个特点1.2.5 云计算三类服务类型 &#xff08;重点&#xff09;1.3 云计算…...