【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("这行代码被注释了,不会执行");
*/

注意事项

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

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

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

相关文章

C++ 之LeetCode刷题记录(十九)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 108. 将有序数组转换为二叉搜索树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你…

针对于vue element-plus组件的el-date-picker日期区间组件的日期格式问题以及如何进行区间判断

<template><el-date-picker v-model"value1" type"daterange" range-separator"To" start-placeholder"开始日期" end-placeholder"结束日期" :size"size" change"sarend" /> </templat…

速盾:海外网站CDN加速建站有哪些优势?

随着互联网的发展&#xff0c;海外网站的建设和访问需求也日益增加。而为了提高海外网站的访问速度和用户体验&#xff0c;CDN加速技术成为了一种必不可少的解决方案。本文将介绍海外网站CDN加速建站的优势&#xff0c;并回答一些相关问题。 一、提高网站访问速度 海外网站部署…

C#学习笔记_数组

数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合&#xff0c;通常认为数组是一个同一类型变量的集合。 声明数组 一、一维数组 一维数组声明语法如下&#xff1a; datatype[] arrayName; 其中&#xff0c;datatype为数据类型&#xff0c;array…

844.比较含退格的字符串(力扣LeetCode)

844.比较含退格的字符串 题目描述 给定 s 和 t 两个字符串&#xff0c;当它们分别被输入到空白的文本编辑器后&#xff0c;如果两者相等&#xff0c;返回 true 。# 代表退格字符。 注意&#xff1a;如果对空文本输入退格字符&#xff0c;文本继续为空。 示例 1&#xff1a;…

泽众云真机-机型集中化运维方案升级全面完成

2024年元月份&#xff0c;泽众云真机运维团队&#xff0c;经过几个月软硬件多轮安装调试&#xff0c;机型集中化运维方案升级全面完成。解决了云真机的机型集中化运维难题&#xff0c;方便了运营人员手机管理。 具体如下&#xff1a; 1、集中化运维&#xff0c;如服务器、PC、…

中级ccnp多久可以考下来?ccnp 课件哪里有?

思科中级CCNP考试要求考生具备一定的网络基础知识&#xff0c;包括IP地址规划、VLAN配置、STP协议等。然而&#xff0c;对于许多初学者来说&#xff0c;中级CCNP考试的难度和门槛都是一个不小的挑战。那么&#xff0c;究竟需要多久才能考下中级CCNP证书呢?下面将为你详细解读。…

esp32 操作DS1307时钟芯片

电气参数摘要 有VCC供电&#xff0c;IIC活动状态是1.5mA&#xff0c;待机状态200μA&#xff0c;电池电流5nA(MAX50nA&#xff09;无VCC供电的时候&#xff0c;电池电流&#xff0c;300nA&#xff08;时钟运行&#xff09;&#xff0c;10nA&#xff08;时钟停止&#xff09;供…

Compose中添加Android原生控件

文章目录 一、前言二、示例代码三、AndroidView的注意事项四、参考链接 一、前言 Compose自身组件有时候并不能完全满足要求&#xff0c;这里演示如何在Compose中添加原生组件及其注意事项 二、示例代码 Composablefun AndroidTextView(modifier: Modifier) {AndroidView(mod…

机器学习-pandas(含数据)

pandas 优势&#xff1a; 增强图表可读性便捷的数据处理能力读取文件方便封装了Matplotlib、Numpy的画图和计算 更详细的教程&#xff1a;Pandas 教程 | 菜鸟教程 (runoob.com) Pandas数据结构 Pandas中一共有三种数据结构&#xff0c;分别为&#xff1a;Series、DataFram…

SpringMVC-拦截器

文章目录 拦截器一、SpringMVC配置文件二、三个抽象方法 拦截器 一、SpringMVC配置文件 <!-- 配置拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path"/**"/> <!---拦截的路径--><mvc:exclude-mapping path&qu…

Vite+Electron快速构建一个VUE3桌面应用(一)

一. 简介 首先&#xff0c;介绍下vite和Electron。 Vite是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验。Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入Chromium和Node.js到二进制的 Electron 允许您保持一个 JavaScript 代码代码…

Docker 容器内运行 mysqldump 命令来导出 MySQL 数据库,自动化备份

备份容器数据库命令&#xff1a; docker exec 容器名称或ID mysqldump -u用户名 -p密码 数据库名称 > 导出文件.sql请替换以下占位符&#xff1a; 容器名称或ID&#xff1a;您的 MySQL 容器的名称或ID。用户名&#xff1a;您的 MySQL 用户名。密码&#xff1a;您的 MySQL …

3dmax效果图渲染出现曝光怎么解决?

在使用3ds Max完成效果图渲染工作时&#xff0c;有时会遇到曝光过度的问题&#xff0c;这会使得渲染的图像出现光斑或者过亮&#xff0c;损害了效果的真实感和美观度。那么解决解决3dmax曝光问题呢&#xff1f;一起看看吧&#xff01; 3dmax效果图渲染出现曝光解决方法 1、相机…

国控创科安徽公司年会思语

国控创科安徽公司年会思语 望尽苍穹知大小&#xff0c;做好本我懂多少。 ​年终总结明比较&#xff0c;践行计划得俊俏。

TestNG @AfterClass 注解

目录 那么&#xff0c;这个AfterClass注释的方法什么时候执行呢&#xff1f; 那么&#xff0c;我们可以在一个类中放置多个AfterClass注释方法吗&#xff1f; AfterClass注释放在超类上时如何工作&#xff1f; 在这篇文章中&#xff0c;我们将讨论TestNG中的AfterClass注释。…

STL-内建函数对象

算术仿函数关系仿函数逻辑仿函数这些仿函数所产生的对象&#xff0c;用法和一半函数完全相同使用这些内建函数对象&#xff0c;需要引入头文件#include 1 实现四则运算 其中negate是一元运算&#xff0c;其他都是二元运算 仿函数原型&#xff1a; template T plus //加法仿函数…

鸿蒙HarmonyOS获取GPS精确位置信息

参考官方文档 #1.初始化时获取经纬度信息 aboutToAppear() {this.getLocation() } async getLocation () {try {const result await geoLocationManager.getCurrentLocation()AlertDialog.show({message: JSON.stringify(result)})}catch (error) {AlertDialog.show({message…

派网AX50C做多宽带路由和核心交换机配置实战教程

接近300办公人员的工厂需要网络升级&#xff0c;我规划设计和部署实施了以下方案&#xff0c;同样是简约不简单&#xff0c;在满足性能需求稳定性的前提下&#xff0c;既有经济性&#xff0c;又有安全性。 派网做路由器&#xff0c;刚好开启默认防病毒策略&#xff0c;省下来一…

《微信小程序开发从入门到实战》学习九十四

7.1 视图容器组件 7.1.4 movable-view和movable-area组件 movable-view是一个可移动的视图容器&#xff0c;它需要与movable-area组件结合使用。movabke-view只能放在movable-area组件中&#xff0c;在movable-area组件的范围内拖曳滑动。 movable-view组件属性如下&#xf…