简介:本专栏是一个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-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)。
②C标识符内不允许出现标点字符,比如 @、$ 和 %。在C中是区分大小写的编程语言。因此,在 C 中,Apple 和 apple 是两个不同的标识符。
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给出了相对应的存储大小和值得范围
整数类型储存大小&范围值
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
浮点类型范围大小&储存大小&精度
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位有效位 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位有效位 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位有效位 |
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类型*
创作不易希望能得到您的支持,您的支持是我创作的动力✌
点赞:您的赞赏是我前进的动力! 👍
收藏:您的支持我是创作的源泉! ⭐
评论:您的建议是我改进的良药! ✍