3.C语言入门:解锁基础概念,动手实现首个C程序

C语言入门:解锁基础概念,动手实现首个C程序

文章目录

  • C语言入门:解锁基础概念,动手实现首个C程序
  • 前言
  • 一、源文件和头文件
    • 1.1 如何新建项目
    • 1.2 添加头文件和源文件
  • 二、第一个C语言程序
    • 1.创建一个源文件
    • 2.写代码
    • 3.运行代码
  • 三、main函数
    • 3.1 什么是main函数?
    • 3.2 main函数的特点
    • 3.3 如何写main函数?
    • 3.4 main函数常见错误
  • 四、printf和库函数
    • 4.1 printf函数的使用
    • 4.2 占位符和 \n
    • 4.3 库函数
      • 4.3.1 为什么有库函数?
      • 4.3.2 什么是库函数?
  • 总结


前言

上期我们成功解决了VS2022社区版C语言的安装问题,为大家的C语言学习之路铺平了道路。本期,我们将进一步深入,带领大家了解在VS2022社区版上如何新建项目、添加源文件和头文件,编写和运行第一个C语言程序,并且了解什么是库函数。

一、源文件和头文件

在VS2022 社区版上写代码,我们是需要创建项目的,直接新建项目就可以了。我们等会就会带大家尝试新建项目,并在项目中添加源文件和头文件。但是在新建项目之前,先了解一下什么是头文件,什么是源文件?
在C语言中,C语言把 .c 为后缀的⽂件称为源文件,把 .h 为后缀的⽂件称为头文件。
在《高质量C/C++编程指南》中,是这么描述的:

每个 C++/C 程序通常分为两个文件。一个文件用于保存程序的声明( declaration), 称为头文件另一个文件用于保存程序的实现(
implementation),称为定义( definition) 文件。
C++/C 程序的头文件以“ .h”为后缀,
C 程序的定义文件以“ .c”为后缀, C++程序 的定义文件通常以“ .cpp”为后缀(也有一些系统以“ .cc”或“ .cxx”为后缀)。

其实这里的定义文件就是我们说的源文件。

1.1 如何新建项目

这是新建项目的流程图

在这里插入图片描述
新建完项目后,我们就可以直接添加头文件和源文件了

1.2 添加头文件和源文件

  1. 添加头文件和源文件的操作是一样的,这里我就不展开讲述了,参考图片。
    图示:

在这里插入图片描述

  1. 选择显示所有模板

在这里插入图片描述

  1. 选择对应文件项

在这里插入图片描述

二、第一个C语言程序

1.创建一个源文件

参考上述操作,当我们创建好一个 test.c 源文件后,在解决资源方案管理器的显示就如图所示

在这里插入图片描述
这里我并不推荐大家创建cpp的后缀文件,因为在学习过程中,有些是C++的特性,C++和C有区别,最好还是使用对应的.c后缀。

2.写代码

我们可以写一个C语言程序,它的内容在是屏幕上输出 hello world 内容

代码如下:

#include<stdio.h>int main()
{printf("hello world\n");return 0;
}

3.运行代码

我们知道,头文件和源文件会经过编译链接这个过程,生成可执行程序,在我们的编译器上,可以按F5或者Ctrl + F5 来进行调试。
运行成功后,我们就可以在我们的命令框上看到对应的信息啦。

在这里插入图片描述

三、main函数

3.1 什么是main函数?

其实每个C语⾔程序不管有多少行代码,都是从 main 函数开始执行的, main 函数是程序的入口,main 函数也被叫做:主函数。 main 前面的 int 表示 main 函数执行结束的时候返回⼀个整型类型的值。所以在 main 函数的最后写 return 0; 正好前后呼应。

3.2 main函数的特点

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

3.3 如何写main函数?

main函数的主要模板如下:

代码如下:

int main()
{return 0;
}

我们可以在这个 { …… } 写我们的代码。

3.4 main函数常见错误

第⼀次写代码,我们也总结了⼀些常见的错误:
• main被写成了mian
• main后边的()漏掉了
• 代码中不能使用中⽂符号,比如括号和分号,有些常规的报错就是因为这个分号。
• ⼀条语句结束后,一定有英文分号

四、printf和库函数

在C语言中,printf 是一个标准的库函数,用于向标准输出(通常是屏幕)打印格式化的字符串。这个函数是C标准库(stdio.h头文件)的一部分,提供了强大的格式化输出功能。
这个printf是由两个单词构成的

print format
打印 格式

在第一个C语言程序的代码中使⽤了 printf 函数,实现了在屏幕上的信息的打印。

#include<stdio.h>int main()
{printf("hello world\n");return 0;
}

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

4.1 printf函数的使用

printf函数也可以⽤来打印其他类型的数据,⽐如:

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

4.2 占位符和 \n

上述代码的 %d , %c 等是占位符,会被后边的值替换。所谓占位符,也就是这是一个占位置的符号。
在printf函数中,占位符用于指示输出数据的格式和类型。例如,%d用于整型数据,%c用于字符数据,%lf用于双精度浮点数据。当printf函数执行时,它会查找这些占位符,并用相应的参数值替换它们。

例如

int n = 100;  
printf("%d\n", n); // %d是整型占位符,n的值(100)将替换它, 
printf("%c\n", 'q'); // %c是字符占位符,'q'将替换它double pi = 3.14;  
printf("%lf\n", pi); // %lf是双精度浮点型占位符,pi的值(3.14)将替换它

我们发现上述代码的每个结尾都有一个\n,那它是什么?
其实\n是一个特殊的转义字符,表示换行。在printf函数中使用\n可以在输出文本后添加一个新行,从而使后续的输出出现在新的一行上。这对于组织输出文本和使其更易读非常有用。
在上面的代码中,每次调用printf函数后,输出都会自动换行,因为每个printf语句的末尾都包含了一个\n字符。这使得输出更加清晰和易读。

4.3 库函数

库函数的时候,是需要包含头文件的,比如: printf 函数需要包含的就是 stdio.h 这个头文件,
具体的方法就是在源文件的开头就使用以下代码:

#include<stdio.h>

这个头文件可以解释为
standard input output
h -> head
标准输入输出

4.3.1 为什么有库函数?

实际上C语言并不提供这些函数,但是他提供标准,比如你需要什么样的函数,这样的函数功能是什么?就像上述写的printf一样,它的功能就是打印信息(字符串).于是在C语言中,由编译器厂商或第三方根据C语言标准实现的一组预定义函数,它们提供了常见的、通用的功能,如输入输出、字符串处理、数学计算等的预定义函数,就被称为库函数。通过调用库函数,程序员可以避免重复编写相同的代码逻辑,从而节省时间和精力。同时,库函数通常经过了优化和测试,可以保证性能和稳定性,减少程序出错的可能性。

4.3.2 什么是库函数?

为了不再重复实现常见的代码,让程序员提升开发效率,C语⾔标准规定了⼀组函数,这些函数再由不同的编译器⼚商根据标准进行实现,提供给程序员使用。这些函数组成了⼀个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上⼀些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不⼀定⽀持)。就比如VS的标准库可能由微软来实现,Xcode则是由苹果来实现的,⼀个系列的库函数⼀般会声明在同⼀个头文件中,所以库函数的使用,要包含对应的头文件。

总结

通过本期的介绍,我们详细了解了在VS2022社区版上编写C语言程序的基本步骤。首先,我们明确了源文件和头文件的概念,并学会了如何新建项目和添加相应的文件。接着,我们编写了第一个C语言程序——输出“hello world”,并成功运行。此外,我们还深入探讨了main函数的特点、printf函数的使用以及库函数的重要性。

在学习过程中,我们强调了main函数作为程序入口的重要性,以及编写main函数时需要注意的常见错误。同时,通过printf函数的实例,我们展示了如何打印不同类型的数据,并解释了占位符和转义字符(如\n)的作用。最后,我们阐述了库函数的存在意义和使用方法,让大家明白了库函数在提高开发效率和保证程序性能方面的巨大作用。

总之,本期内容不仅让大家学会了在VS2022社区版上编写和运行C语言程序的基本技能,还深入理解了C语言的一些核心概念。希望大家能够继续努力学习,不断探索C语言的奥秘,为将来的编程之路奠定坚实的基础。

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

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

相关文章

水库大坝安全监测预警系统守护大坝安全卫士

一、系统背景 近年来&#xff0c;受全球气候变化和人类活动影响&#xff0c;极端天气发生频度强度增加&#xff0c;加之我国城市化进程中&#xff0c;水库下游人口聚集、基础设施密集&#xff0c;对水库工程安全运行提出了新的更高要求。“十四五”以来我国建成并投入使用37593…

微服务架构---认识Zuul

目录 认识Zuul简单的例子 第一个Zuul程序步骤1&#xff1a;创建父工程zuul-1步骤2&#xff1a;创建HystrixController类步骤3&#xff1a;搭建服务消费者eureka-consumer项目&#xff08;1&#xff09;创建一个config包&#xff0c;在config包下新建配置类RestConfig&#xff0…

跨境卖家品牌出海要注意哪些方面

随着目前互联网的发展&#xff0c;市场由线下扩张到全国&#xff0c;再扩张到了全球&#xff0c;但是海外市场和国内并不相同跨境卖家品牌想要出海&#xff0c;需要注意多个方面&#xff0c;以确保能够在国际市场上成功立足并发展。以下是一些关键点&#xff1a; 首先想得拥有…

基于matlab的语音信号处理

摘要 利用所学习的数字信号处理知识&#xff0c;设计了一个有趣的音效处理系统&#xff0c;首先设计了几种不同的滤波器对声音进行滤波处理&#xff0c;分析了时域和频域的变化&#xff0c;比较了经过滤波处理后的声音与原来的声音有何变化。同时设计实现了语音的倒放&#xf…

【HarmonyOS开发笔记 2 】 -- ArkTS语法中的变量与常量

ArkTS是HarmonyOS开发的编程语言 ArkTS语法中的变量 【语法格式】&#xff1a; let 变量名: 类型 值 let&#xff1a;是定义变量的关键字类型&#xff1a; 值数据类型&#xff0c; 常用的数据类型 字符型&#xff08;string&#xff09;、数字型&#xff08;number&#xf…

最新发布!Windows 11 24H2 纯净版:无捆绑,即刻升级!

今日&#xff0c;系统之家小编给大家带来最新的Windows11 24H2纯净版系统下载&#xff0c;该版本系统基于微软官方Windows11 24H2 26100.1882专业版进行离线制作&#xff0c;删除各种流氓软件&#xff0c;确保系统安全纯净&#xff0c;大家日常操作更放心。系统的兼容性出色&am…

人工智能的未来:从知识廉价时代到AI主导国家模式

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;知识的获取和使用正变得更加普及与廉价。这不仅引发了技术领域的深刻变革&#xff0c;也将对全球社会经济模式产生广泛影响。特别是在《时代》杂志对风险投资巨头维诺德科斯拉&#xff08;Vinod Khosla&#…

免费送源码:Apache+B/S+Springboot+MySQL 商城综合项目自动化系统 计算机毕业设计原创定制

摘 要 目前电商系统商城项目管理极其频繁,迫切地需要自动化测试来代替人工繁琐而又重复的劳动。自动化测试相关的研究已经很多,但多数只是针对某一方面,比如单一接口或者单一页面或者性能等,而缺乏将接口、页面、持续集成系统和缺陷管理系统整合的自动化测试平台。本研究采用混…

解决雪花ID在前端精度丢失问题

解决雪花ID在前端精度丢失问题 在现代分布式系统中&#xff0c;雪花算法&#xff08;Snowflake&#xff09;被广泛用于生成唯一的ID。这些ID通常是Long类型的整数。然而&#xff0c;当这些ID从后端传递到前端时&#xff0c;JavaScript的精度限制可能会导致精度丢失&#xff0c…

No.14 笔记 | XSS漏洞:原理、类型与防御策略

一、HTML和JavaScript基础 1. HTML基础 HTML概述&#xff1a;超文本标记语言&#xff0c;用于实现页面跳转和显示数据。结构标准&#xff1a;包括<!doctype html>声明文档类型&#xff0c;<html>根标签&#xff0c;<head>头部标签和<body>主体标签等。…

鸿鹄企业电子招投标采购系统视频详解|在线招投标|评标|竞标|单一采购|询价|邀标|在线开标|招标公告发布|评审专家|招标代理机构|招投标采购系统视频讲解

鸿鹄企业电子招投标采购系统视频详解|在线招投标|评标|竞标|单一采购|询价|邀标|在线开标|招标公告发布|评审专家|招标代理机构|招投标采购系统视频讲解 鸿鹄企业招投标采购系统视频讲解地址企业软件定制擅长跟我学习springcloud,honghu b2b2c,知识付费,等方面的知识,企业软件定…

了解网页 blob 链接

blob 链接 自从 HTML5 提供了 video 标签&#xff0c;在网页中播放视频变得非常简单&#xff0c;只要在代码中插入一个 video 标签&#xff0c;再将 video 标签的 src 属性设置为视频的链接就可以了。由于 src 指向的是视频文件真实的地址&#xff0c;所以当我们通过浏览器的调…

自动驾驶系列—从IMU到惯性定位算法:自动驾驶精准定位的幕后科技

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

ACM(Association for Computing Machinery)简介

ACM&#xff08;Association for Computing Machinery&#xff09;简介 ACM&#xff0c;全称为 Association for Computing Machinery&#xff0c;中文译作“计算机协会”&#xff0c;是全球历史最悠久、规模最大的计算机领域专业组织。成立于1947年&#xff0c;ACM致力于推动…

JavaEE一条龙学习----前端开发准备(二)

上一章为大家推荐了几款前端开发软件 我个人习惯使用VS Code Microsoft出品&#xff0c;轻量但强大&#xff0c;针对于编写现代Web和云应用的跨平台源代码编辑器。可以在MacOS X、Windows和 Linux等操作平台使用。 具有对JavaScript、TypeScript和Node.js的内置支持&#xff0…

20.数据结构与算法-树和二叉树/满二叉树/完全二叉树/二叉树的性质/二叉树的存储结构

树的定义 树的其它表示方法 树的基本术语 树结构和线性结构的比较 二叉树的定义 二叉树案例引入 二叉树的抽象数据类型定义 二叉树的性质 两种特殊形式的二叉树 满二叉树 完全二叉树 完全二叉树的性质 二叉树的存储结构 二叉树的顺序存储 二叉树的链式存储结构 二叉链表 三叉链…

大数据新视界 --大数据大厂之 Hudi 数据湖框架性能提升:高效处理大数据变更

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

五款专业三维数据处理工具:GISBox、Cesiumlab、OSGBLab、灵易智模、倾斜伴侣深度解析

随着三维数据处理技术的广泛应用&#xff0c;尤其是在城市规划、地理信息系统&#xff08;GIS&#xff09;、工程监测等领域&#xff0c;处理倾斜摄影、三维建模以及大规模数据管理的需求日益增加。以下是五款我精心挑选的倾斜摄影和三维数据处理工具——GISBox、Cesiumlab、OS…

节后股票风险学习

说来惭愧&#xff0c;虽然股票搞了有5年&#xff0c;也一直亏钱&#xff0c;但从来不看技术指标&#xff0c;比较关注股票的历史价位。以前没啥钱只能买股价低的一些&#xff0c;后来努力打工存钱&#xff0c;可以买股价高的了&#xff0c;由于比较喜欢买龙头&#xff0c;像北方…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的酒店管理系统

开题报告 酒店管理是一个复杂而多样化的领域&#xff0c;涉及到酒店的日常运营、客户服务、房间预订、财务管理等诸多方面。随着科技的不断发展&#xff0c;传统的手工管理方式已经无法满足酒店业的需求。因此&#xff0c;开发一套高效、可靠的酒店管理系统变得至关重要。首先…