【C快学-C语言程序设计(基础篇)】从VSCode中使用C编写我的第一个Hello world

在这里插入图片描述

简介:本专栏是一个C语言基础入门知识学习的一个专栏
面向:广大C友
工具:VSCODE
博主:一个友好且宠粉的博主,送书活动小专栏,不定期抽奖送图书给粉丝
社区:🦈山鱼社区

1.如何配置C语言环境(VSCode版本)

我这里是使用超级强大的vscode来进行C语言的学习的,因为vscode有着许多好用且方便的插件,能够提高我们编码的效率和速度,那么下面我们就来迈出学习C语言的第一步吧!

第一步我们要找到C语言环境的下载地址

嗖~的一下就飞到了地址处
在这里插入图片描述

1.MinGW/MinGW-w64是啥

MinGW 的全称是:Minimalist GNU on Windows ,是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。正因为如此,MinGW 现已被 MinGW-w64 所取代,且 MinGW 也早已停止了更新,内置的 GCC 停滞在了 4.8.1 版本,而 MinGW-w64 内置的 GCC 则更新到了 8.1.0 版本。

2.解压配置环境

①找到这样一个压缩包,解压之后打开已经解压的mingw64文件我们会看到一个带有bin文件夹的文件
在这里插入图片描述

在这里插入图片描述

②右击此电脑,打开高级设置
在这里插入图片描述

③点击环境变量并添加环境变量
在这里插入图片描述
在这里插入图片描述

点击新建将刚才的解压mingw64路径复制到这里
在这里插入图片描述
在这里插入图片描述

配置好之后就是这样的了
在这里插入图片描述

④再打开cmd输入 gcc -v
在这里插入图片描述

出现这个就说明环境Ok啦
在这里插入图片描述

⑤接下来就是打开VSCode,安装插件,安装这三个C插件,我们就可以开始我们的C语言编程之旅了!
在这里插入图片描述

3.第一个C语言文件—>hello.C

#include <stdio.h>int main()
{/* 这是我的第一个C代码 */printf("Hello, World! \n");
return 0;
}

我们可以先来了解一下,各行代码是什么东西

1.stdio.h 是一个头文件 (标准输入输出头文件) , #include 是一个预处理命令,用来引入头文件。 当编译器遇到 printf() 函数时,如果没有找到 stdio.h 头文件,会发生编译错误。

2.所有的 C 语言程序都需要包含 main() 函数。 代码从 main() 函数开始执行,所以我们编写C代码时,首先要做的事情就是将前两行写上

3./**/用于多行注释说明,//为单行注释。

4.printf() 用于格式化输出到屏幕。printf() 函数在 “stdio.h” 头文件中声明。

5.return 0; 语句用于表示退出程序。

我们安装了插件之后会有这样一个小三角,它可以帮助我们编译运行我们所写的C文件

在这里插入图片描述

打开终端我们可以看到,这个程序成功的把‘Hello world’输出出来了

在这里插入图片描述

这样我们的第一个C代码文件就成功的创建出来了。

2.C的基本语法

1.C的令牌

首先我们来看几行代码,它分别是由大括号,printf函数,和return组成的,我们可以把他们每一个都称为令牌,C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号

printf("Hello world\n");

上面就有这么5个令牌组成的,每一个字符,关键字,标识符等都是一个令牌,我们拆分开来看就是这样子
在这里插入图片描述

在C语言的程序中,当一个语句结束了,我们就要把分号添加在结束语句的末尾,当一个程序结束了我们就要把return 添加到末尾,用来表示一个程序已经结束。

2.C的标识符

标识符在C中也是不可或缺的,我们定义变量,函数,或者其他的自定义属性,项目等,都会用到标识符,那么标识符有哪些限制呢?

①一个标识符以字母 A-Za-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。

②C标识符内不允许出现标点字符,比如 @$%。在C中是区分大小写的编程语言。因此,在 C 中,Appleapple 是两个不同的标识符。

3.C的关键字

关键字在我们设计程序编写代码时,经常出现并且使用,所以我们并不能把关键字当作变量名称,函数名称来用,下面是C中的关键字,在C99,C11中还新增了一些关键字,可以自行查阅一下

auto声明自动变量
break跳出当前循环
case开关语句分支
char声明字符型变量或函数返回值类型
const定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue结束当前循环,开始下一轮循环
default开关语句中的"其它"分支
do循环语句的循环体
double声明双精度浮点型变量或函数返回值类型
else条件语句否定分支(与 if 连用)
enum声明枚举类型
extern声明变量或函数是在其它文件或本文件的其他位置定义
float声明浮点型变量或函数返回值类型
for一种循环语句
goto无条件跳转语句
if条件语句
int声明整型变量或函数
long声明长整型变量或函数返回值类型
register声明寄存器变量
return子程序返回语句(可以带参数,也可不带参数)
short声明短整型变量或函数
signed声明有符号类型变量或函数
sizeof计算数据类型或变量长度(即所占字节数)
static声明静态变量
struct声明结构体类型
switch用于开关语句
typedef用以给数据类型取别名
unsigned声明无符号类型变量或函数
union声明共用体类型
void声明函数无返回值或无参数,声明无类型指针
volatile说明变量在程序执行中可被隐含地改变
while循环语句的循环条件

3.C 数据类型

1.C的多种数据类型

在大多数语言中我们或多或少都可以找到那么几种数据类型,比如Java中就有int,float,double等类型

在这里插入图片描述

Ts中any,string,object等类型

在这里插入图片描述

所以在C语言中也可以找到数据类型,C中的类型可以分为这几种,分别是,基本数据类型,枚举类型,void 类型,派生类型

数据类型类型描述
基本数据类型它们是算术类型,包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
枚举类型它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
void 类型类型说明符 void 表示没有值的数据类型,通常用于函数返回值。
派生类型包括数组类型、指针类型和结构体类型。

2.C的类型字节大小

我们在编写C程序的时候可能会用到字符的大小,我们只知道类型却不知道大小该怎么办呢?这个时候我们就可以使用sizeof来得到想要使用的字节大小。
在这里插入图片描述
在这里插入图片描述

在标准整数类型中和浮点类型中,C给出了相对应的存储大小和值得范围

整数类型储存大小&范围值

类型存储大小值范围
char1 字节-128 到 127 或 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-128 到 127
int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节0 到 4,294,967,295

浮点类型范围大小&储存大小&精度

类型存储大小值范围精度
float4 字节1.2E-38 到 3.4E+386 位有效位
double8 字节2.3E-308 到 1.7E+30815 位有效位
long double16 字节3.4E-4932 到 1.1E+493219 位有效位

在这里插入图片描述
在这里插入图片描述

3.C的类型转换

类型转换:类型转换是将一个数据类型的值转换为另一种数据类型的值。

C语言中有两种类型转换分别是

隐式类型转换: 隐式类型转换是在表达式中自动发生的,无需进行任何明确的指令或函数调用。它通常是将一种较小的类型自动转换为较大的类型,例如,将int类型转换为long类型或float类型转换为double类型。隐式类型转换也可能会导致数据精度丢失或数据截断。
显式类型转换: 显式类型转换需要使用强制类型转换运算符(type casting operator),它可以将一个数据类型的值强制转换为另一种数据类型的值。强制类型转换可以使程序员在必要时对数据类型进行更精确的控制,但也可能会导致数据丢失或截断。

//隐式类型转换实例int i = 10; float f = 3.14; double d = i + f; // 隐式将int类型转换为double类型* //显式类型转换实例: double d = 3.14159 ; int i = (int)d; // 显式将double类型转换为int类型*

创作不易希望能得到您的支持,您的支持是我创作的动力✌
点赞:您的赞赏是我前进的动力! 👍
收藏:您的支持我是创作的源泉! ⭐
评论:您的建议是我改进的良药! ✍

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

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

相关文章

深入探索Spring框架:解密核心原理、IOC和AOP的奥秘

深入探索Spring框架&#xff1a;解密核心原理、IOC和AOP的奥秘 1. 理解 Spring 的核心原理1.1 控制反转&#xff08;IOC&#xff09;1.2 面向切面编程&#xff08;AOP&#xff09; 2. 深入 IOC 容器的实现机制2.1 容器的创建2.2 Bean 的生命周期2.3 依赖注入 3. 深入 AOP 的实现…

代理模式【Proxy Pattern】

什么是代理模式呢&#xff1f;我很忙&#xff0c;忙的没空理你&#xff0c;那你要找我呢就先找我的代理人吧&#xff0c;那代理人总要知道 被代理人能做哪些事情不能做哪些事情吧&#xff0c;那就是两个人具备同一个接口&#xff0c;代理人虽然不能干活&#xff0c;但是被 代…

最新AI创作系统ChatGPT程序源码+详细搭建部署教程+微信公众号版+H5源码/支持GPT4.0+GPT联网提问/支持ai绘画+MJ以图生图+思维导图生成!

使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到系统&#xff01; 新增 MJ 官方图片重新生成指令功能同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle)同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom out 1.5x新增GPT联网提问功能、手机号注…

“new出对象“原理的深层解密

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

欧拉函数和最大公约数

分析&#xff1a;如果两个数的最大公约数是一个质数p&#xff0c;那么这两个数都除以p&#xff0c;得到的两个数的最大公约数一定是1. 反证法&#xff1a;如果得到的两个数的最大公约数不是1&#xff0c;那么把此时的最大公约数乘以上边的最大公约数&#xff0c;得到的一定比上…

Go语言工程实践之测试与Gin项目实践

Go 语言并发编程 及 进阶与依赖管理_软工菜鸡的博客-CSDN博客 03 测试 回归测试一般是QA(质量保证)同学手动通过终端回归一些固定的主流程场景 集成测试是对系统功能维度做测试验证,通过服务暴露的某个接口,进行自动化测试 而单元测试开发阶段&#xff0c;开发者对单独的函数…

C# int和uint类型学习

在C#中&#xff0c;使用int表示整数类型&#xff0c;对应于.NET的System.Int32结构&#xff1b; C#中的int类型占4字节(4*832位)内存空间&#xff0c;其范围从-2,147,483,648 到 2,147,483,647&#xff1b; int类型是默认的整数类型&#xff0c;并且默认值是0&#xff1b; u…

Oracle database 静默安装 oracle 11g 一键安装

基于oracle安装包中应答文件实现一键安装 支持环境&#xff1a; Linux &#xff1a;centerOS 7 oracle &#xff1a;11.2.0 Oracle应答文件 runInstaller应答文件 /database/response/db_install.rsp netca应答文件 /database/response/netca.rsp dbca应答文件 /database/re…

Redis数据结构——跳跃表

跳跃表 先来回顾常规的跳跃表。 &#xff01;&#xff01;&#xff01;下面的图片和内容都来自于这个链接Redis数据结构——跳跃表 - 随心所于 - 博客园 对于一个有序的链表&#xff0c;我们如何才能快速定位一个元素呢&#xff1f;只能遍历&#xff0c;时间复杂度是O(N)&…

【实操】2023年npm组件库的创建发布流程

2022年的实践为基础&#xff0c;2023年我再建一个组件库【ZUI】。步骤回顾&#xff1a; 2022年的npm组件包的发布删除教程_npm i ant-design/pro-components 怎么删除_啥咕啦呛的博客-CSDN博客 1.在gitee上创建一个项目,相信你是会的 2.创建初始化项目&#xff0c;看吧&#…

86. 分隔链表

86. 分隔链表 题目-中等难度示例1. 新建两链表&#xff0c;根据x值分类存放&#xff0c;最后合并 题目-中等难度 给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保…

帮助中心干货:7步即可在线搞定产品帮助中心!

在产品的生命周期中&#xff0c;帮助中心是一个非常重要的部分&#xff0c;它能够为用户提供必要的信息和解决方案&#xff0c;帮助他们更好地使用产品。如果你正在寻找一种简单高效的方法来在线搭建产品帮助中心&#xff0c;那么这篇干货文章将为你提供7个步骤&#xff0c;让你…

WebDAV之π-Disk·派盘+Commander One

Commander one是一款为Mac用户设计的双窗格文件管理器,Commander One专业版在原先的版本功能拥有较大的提升。Commander One PRO可以帮助大家将文件从一个地方复制到另一个地方,支持多标签浏览、搜索、自定义热键设置、显示隐藏文件等功能。 π-Disk派盘 – 知识管理专家 派…

[迁移学习]领域泛化

一、概念 相较于领域适应&#xff0c;领域泛化(Domain generalization)最显著的区别在于训练过程中不能访问测试集。 领域泛化的损失函数一般可以描述为以下形式&#xff1a; 该式分为三项&#xff1a;第一项表示各训练集权重的线性组合&#xff0c;其中π为使该项最小的系数&a…

Linux下在qtcreator中创建qt程序

目录 1、新建项目 2、单工程项目创建 3、多工程项目创建 4、添加子工程&#xff08;基于多工程目录结构&#xff09; 5、 .pro文件 1、新建项目 切换到“编辑”界面&#xff0c;点击菜单栏中的“文件”-“新建文件或项目” 2、单工程项目创建 只有一个工程的项目&#…

uniapp使用阿里矢量库

然后解压复制全部到你的项目文件 最后只要这几个 然后引入 最后在你需要的页面使用

电脑系统重装日记

重装原因 电脑C盘几乎爆炸故重装系统一清二白 此片原因 记录重装过程&#xff0c;强调一些要注意的点&#xff0c;以防日后重装。 重装过程 1.清空电脑文件后重启&#xff0c;电脑冒蓝光&#xff0c;一直蓝屏反复重启&#xff0c;故只能重装系统以解难题。 2.准备一个U盘&…

手机里视频太大怎么压缩?压缩教程分享

现在视频文件的体积越来越大了&#xff0c;动不动就是几个GB起步&#xff0c;如果后期再剪辑处理一下&#xff0c;更是会占据更多的设备空间了&#xff0c;还会导致我们传输受到限制&#xff0c;这时候就需要我们对视频进行压缩处理&#xff0c;下面给大家分享几个简单的方法&a…

生成式 AI 在泛娱乐行业的应用场景实践 – 助力风格化视频内容创作

感谢大家阅读《生成式 AI 行业解决方案指南》系列博客&#xff0c;全系列分为 4 篇&#xff0c;将为大家系统地介绍生成式 AI 解决方案指南及其在电商、游戏、泛娱乐行业中的典型场景及应用实践。目录如下&#xff1a; 《生成式 AI 行业解决方案指南与部署指南》《生成式 AI 在…

spark的使用

spark的使用 spark是一款分布式的计算框架&#xff0c;用于调度成百上千的服务器集群。 安装pyspark # os.environ[PYSPARK_PYTHON]解析器路径 pyspark_python配置解析器路径 import os os.environ[PYSPARK_PYTHON]"D:/dev/python/python3.11.4/python.exe"pip inst…