【星计划★C语言】c语言初相识:探索编程之路

news2024/11/16 13:47:03

在这里插入图片描述
🌈个人主页:聆风吟_
🔥系列专栏:星计划★C语言、Linux实践室
🔖少年有梦不应止于心动,更要付诸行动。


文章目录

  • 📋前言
  • 一. ⛳️第一个c语言程序
  • 二. ⛳️数据类型
    • 2.1 🔔数据单位
    • 2.2 🔔计算机中常用的单位
    • 2.3 🔔C语言中的关键字
  • 二. ⛳️常量
  • 三. ⛳️变量
    • 3.1 🔔定义变量的方法
    • 3.2 🔔变量的命名规则
  • 四. ⛳️整型数据
    • 4.1 🔔符号常量
    • 4.2 🔔整型变量
  • 五. ⛳️浮点型数据
    • 5.1 🔔浮点型常量
    • 5.2 🔔浮点型变量
  • 六. ⛳️字符型常量
    • 6.1 🔔字符型常量
    • 6.2 🔔转义字符
    • 6.3 🔔字符数据在内存中的存储形式以及使用方法
  • 七. ⛳️字符串型常量
  • 📝全文总结

📋前言

C 语言为什么叫 C 语言呢?其实是因为先有高级语言 ALGOL 60(简称 A 语言),后来它经过简化变为 BCPL 语言(改进后称为 B 语言),而 C语言是在 B 语言的基础之上发展而来的,所以就称为 C 语言。因此,世界上的第一个 C 语言编译器是用 B 语言编写的。目前,主流的编译器是 GCC 编译器。

1972 年,Dennis M. Ritchie 在 B 语言的基础上最终设计出了一种新的语言,他以 BCPL 的第二个字母作为这种语言的名字,这就是 C 语言。
在这里插入图片描述



一. ⛳️第一个c语言程序

#include <stdio.h>
//解释:
//main函数是程序的入口
//在整个工程中有且只有一个
int main()
{
    printf("hello world!\n");
    return 0;
}


二. ⛳️数据类型

2.1 🔔数据单位

数据类型的分类如下图所示:
在这里插入图片描述

char              //字符型
short             //短整型
int               //整型
long              //长整型
float             //单精度浮点数
double            //双精度浮点数
  • 为什么会出现这多的数据类型?

答:存储这么多的类型,其实是为了更加丰富的表达生活中的各种值。

  • 每种数据类型的大小是多少?
#include <stdio.h>

int main()
{
	//在vs和clion环境下的运行结果
    printf("%d\n", sizeof(char));       //结果:1
    printf("%d\n", sizeof(short));      //结果:2
    printf("%d\n", sizeof(int));        //结果:4
    printf("%d\n", sizeof(long));       //结果:4
    printf("%d\n", sizeof(float));      //结果:4
    printf("%d\n", sizeof(double));     //结果:8
}

小课堂:

  • sizeof是一个操作符
  • sizeof用于计算类型或变量所占用的存储空间的大小

2.2 🔔计算机中常用的单位

单位换算关系
比特(b)基本单位
字节(B)1 B = 8 b
千字节(KB)1 KB = 1024 B = 2^10 B
兆字节(MB)1 MB = 1024 KB = 2^20 B
吉字节(GB)1 GB = 1024 MB = 2^30 B
太字节(TB)1 TB = 1024 GB = 2^40 B

注:b = bitB = Byte


2.3 🔔C语言中的关键字

    c语言中有很多关键字,在后面的章节中遇到后我们在进行介绍(无需记忆),在这里给出是为了让大家对c语言的关键字有个认识,以避免命名变量的时候与关键字重名。c语言中的关键字如下图所示:
在这里插入图片描述



二. ⛳️常量

    常量:是指在程序运行过程中,其值不发生变化的量。常量又分为整型、实型(也称浮点型)、字符型和字符串型。如下所示:

类型举例
整型100,235,-122,0
实型3.14,0.125,-4.25
字符型‘a’,‘b’,‘c’
字符串型“a”,“ab”,“2a3b”


三. ⛳️变量

    变量:是指在程序运行过程中,其值可以发生变化的量。变量名实际上是以一个名字代表一个对应的存储单元地址,编译、链接程序时,由编译系统为每个变量名分配对应的内存地址(就是空间)。从变量中取值实际上就是通过变量名找到内存中存储单元的地址,并从该存储单元中读取数据,如下图所示:
在这里插入图片描述

3.1 🔔定义变量的方法

int age = 25;
float weight = 45.5f;
char ch = 'a';

小课堂:在选择变量名和其他标识符时,应尽量做到 “见名知意”。


3.2 🔔变量的命名规则

  • 只能由字母(包括大写和小写)、数字和下划线(_)组成;
  • 不能以数字开头;
  • 变量名区分大小写;
  • 变量名不能使用关键字;
  • 长度不能超过63字符。

在这里插入图片描述



四. ⛳️整型数据

4.1 🔔符号常量

符号常量:在编程语言中使用一个标识符来表示的常量,这个标识符即称为符号常量。定义格式如下:

#define <符号常量名> <常量>
#define PI 3.14

符号常量的使用:

#include <stdio.h>

#define PI 3+2	//PI是符号常量

int main()
{
    int i = PI * 2;
    printf("i = %d\n", i);//输出结果是7

    return 0;
}
  • 为什么输出结果是7,而不是10呢?

答:因为是符号常量PI直接替换的效果,因此不可以写成PI=5
在这里插入图片描述

4.2 🔔整型变量

主要掌握int i足以应对初试,其中变量i是4个字节



五. ⛳️浮点型数据

5.1 🔔浮点型常量

表示浮点型常量的形式有两种,如下图所示。其中e代表10的幂次,幂次可正可负
在这里插入图片描述

注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。

在这里插入图片描述

5.2 🔔浮点型变量

通过float f来定义浮点变量,其中f占用4个字节的空间



六. ⛳️字符型常量

6.1 🔔字符型常量

用单引号('')括起来的一个字符是字符型常量,且只能包含一个字符。例如下图:
在这里插入图片描述


6.2 🔔转义字符

假如我们要在屏幕上打印一个目录:c:\code\test.c
我们的代码应该如何写呢?

#include <stdio.h>

int main()
{
    printf("c:\code\test.c\n");
    return 0;
}

实际上程序运行的结果是这样的:
在这里插入图片描述
这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思,\开头的的特殊字符称为转义字符

转移字符释义
\’用于表示字符常量'
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止他被解释为一个转义序列符
\n换行
\b退格符
\dddddd表示1~3个八进制的数字。如:\130表示字符X
\xddddd表示l2个十六进制的数字。如:\x30表示字符0

综上所讲,我们开头的代码应该更改为:
在这里插入图片描述

6.3 🔔字符数据在内存中的存储形式以及使用方法

字符型变量使用的关键字char进行定义,一个字符型变量占用1个字节大小的空间。一个字符常量存放到一个字符型变量中时,实际上并不是把该字符的字型放到内存中,而是把该字符的ASCII码值放到存储单元中。

打印字符型变量时, 如果以字符形式打印,那么计算机会到ASCII码表中查找字符型变量的ASCII码值,查到对应的字符后会显示对应的字符。
在这里插入图片描述
由上图所示,字符型数据既可以以字符形式输出,又可以以整数形式输出,还可以同过运算获取想要的各种字符
在这里插入图片描述

小课堂:由ASCII码表我们可以很容易发现:小写字母 - 大写字母 = 32



七. ⛳️字符串型常量

字符串型常量是由一对双引号("")括起来的字符序列。例如下图:在这里插入图片描述

小课堂:

  1. 'a'是字符型常量,而"a"是字符串型常量,二者是不同的;
  2. c语言中没有定义字符串型变量的关键字,因此我们需要通过数组对字符串进行存储。

c语言规定,在每个字符串型常量的尾部加一个字符串结束标志,以便系统据此判断字符串是否结束, c语言规定以字符\0作为字符串的结束标志。例如,字符串型常量"CHINA"在内存中的存储方式如下图所示:
在这里插入图片描述

#include <stdio.h>

int main()
{
    char c[] = "CHINA";

    //输出结果为:6
    //它占用内存单元不是5个字节,而是6个字节,即大小为6
    //最后一个字符为'\0'
    //注意:在输出是不输出'\0',因为'\0'无法显示
    printf("字符串的长度为:%d\n", sizeof(c));

    return 0;
}


📝全文总结

     今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!
在这里插入图片描述

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

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

相关文章

2024福建三支一扶报名流程,超全超详细!

2024年福建三支一扶报名已经开始&#xff0c;请注意时间&#xff01; ⚠2024年福建省省级“三支一扶”计划招募岗位1070个 报名时间&#xff1a;4月1日8:00至4月17日17:00 审查考核&#xff1a;4月18日至5月10日 确定派遣人员&#xff1a;5月11日至5月31日 报名入口&#xff1…

Day66-企业级防火墙iptables精讲2

Day66-企业级防火墙iptables精讲2 1. iptables项目案例2&#xff1a;局域网共享上网&#xff1a;2. iptables项目案例3&#xff1a;外网IP的端口映射到内网IP的端口3. 老男孩教育iptables项目案例4&#xff1a;IP一对一映射&#xff08;DMZ&#xff09;4. 老男孩教育iptables项…

jdbc连SQL server,显示1433端口连接失败解决方法

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行&#xff0c;且在此端口接受 TCP/IP 连接…

在project模式下自定义Implementation Strategies

Implementation Settings定义了默认选项&#xff0c;当要定义新的implementation runs时会使用这些选项&#xff0c;选项的值可以在Vivado IDE中进行配置。 图1展示了“Settings”对话框中的“implementation runs”对话框。要从Vivado IDE打开此对话框&#xff0c;请从主菜单中…

文件管理--fscanf,fread,fwrite和fprintf

fprintf函数&#xff1a;对于fprintf函数&#xff0c;它和printf一样&#xff0c;但是它的表达式为&#xff1a;int fprintf ( FILE * stream, const char * format, ... );和printf的很相似&#xff0c;但有不一样。它是格式化输出函数&#xff0c;代码为&#xff1a; #includ…

2024年清明节安装matlab 2024a

下载安装离线支持包SupportSoftwareDownloader_R2024a_win64&#xff0c;地址https://ww2.mathworks.cn/support/install/support-software-downloader.html&#xff0c;运行软件&#xff08;自解压运行&#xff09;&#xff0c;登录账号&#xff08;需要提前在官网注册&#x…

Ubuntu部署BOA服务器

BOA服务器概述 BOA是一款非常小巧的Web服务器&#xff0c;源代码开放、性能优秀、支持CGI通用网关接口技术&#xff0c;特别适合用在嵌入式系统中。 BOA服务器主要功能是在互联嵌入式设备之间进行信息交互&#xff0c;达到通用网络对嵌入式设备进行监控&#xff0c;并将反馈信…

MPLS-基础、LSR、LSP、标签、体系结构

MPLS技术 MPLS基础 MPLS&#xff1a;转发数据时&#xff0c;只在网络边缘分析IP报文头&#xff0c;不在每一跳都分析&#xff0c;节约了转发时间。 MPLS&#xff1a;Multiprotocol Label Switching&#xff0c;多协议标签交换骨干网技术。主要应用&#xff1a;VPN、流量工程…

基于wordcloud、matplotlib等对某东评论数据情感分析-Python数据分析项目

基于wordcloud、matplotlib等对某东评论数据情感分析 文章目录 基于wordcloud、matplotlib等对某东评论数据情感分析1 数据导入及预处理1.1 数据导入1.2 数据描述1.3 数据预处理 2 情感分析2.1 情感分析2.2 情感分直方图2.3 词云图2.4 关键词提取 3 积极评论与消极评论3.1 积极…

【番外篇1】统计学+spss-t检验

目录 t检验 独立样本 t 检验 p值 spss如何分析独立样本t检验 配对样本t检验 单样本t检验 t检验 当我们想要比较两组数据&#xff08;比如两组学生的成绩&#xff09;是否真的有显著差异时&#xff0c;就可以使用 t 检验。 t 检验告诉我们&#xff0c;这种差异是不是真的…

深入解析Hadoop生态核心组件:HDFS、MapReduce和YARN

这里写目录标题 01HDFS02Yarn03Hive04HBase1&#xff0e;特点2&#xff0e;存储 05Spark及Spark Streaming关于作者&#xff1a;推荐理由&#xff1a;作者直播推荐&#xff1a; 一篇讲明白 Hadoop 生态的三大部件 进入大数据阶段就意味着进入NoSQL阶段&#xff0c;更多的是面向…

@Order和@DependsOn的区别

这里写自定义目录标题 一、区别二、demo演示1、Order2、DependsOn 一、区别 Order&#xff1a;改变Bean注入的顺序DependsOn&#xff1a;改变Bean创建的顺序 二、demo演示 1、Order 类 A B 都实现了接口 I &#xff0c;且 A B都由Spring容器创建并且管理 public class A im…

.NET CORE 分布式事务(四) CAP实现最终一致性

目录 引言&#xff1a; 1.0 最终一致性介绍 2.0 CAP 2.0 架构预览 3.0 .NET CORE 结合CAP实现最终一致性分布式事务 3.1 准备工作(数据库&#xff0c;本文使用的是MySql) 3.1.1 数据模型 3.1.2 DbContext 3.1.3 数据库最终生成 3.2 Nuget引入 3.3 appsettings.json …

FressRTOS_day4:2024/4/4

1.总结二进制信号量和计数型信号量的区别&#xff0c;以及他们的使用场景。 二进制信号量的数值只有0和1。&#xff08;用于共享资源的访问&#xff09;&#xff1b;而计数型信号量的值一般是大于或者等于2&#xff08;用于生产者和消费者模型&#xff09; 2.使用计数型信号量…

安装Schedule库的方法最终解答!_Python第三方库

安装Python第三方库Schedule 我的环境&#xff1a;Window10&#xff0c;Python3.7&#xff0c;Anaconda3&#xff0c;Pycharm2023.1.3 Schedule库 Schedule 是一个轻量级、功能强大而灵活的任务调度工具库&#xff0c;用于在指定的时间间隔内执行任务。为用户提供了简单易用的…

树(Tree) - 概念与基础

树的基本概念 树(Tree)是一种重要的数据结构&#xff0c;它在计算机科学中被广泛应用于各种算法和程序中。树是由节点(node)组成的层次结构&#xff0c;其中每个节点都有一个父节点&#xff0c;除了根节点外&#xff0c;每个节点都有零个或多个子节点。树的一个关键特点是没有…

Java云联his系统,支持电子病历四级,医院信息管理系统源码

SaaS模式Java语言开发的云HIS系统源码&#xff0c;支持电子病历四级&#xff0c;系统充分考虑了模板化、配置化、智能化、扩展化等设计方法&#xff0c;覆盖了基层医疗机构的主要工作流程&#xff0c;能够与监管系统有序对接&#xff0c;并能满足未来系统扩展的需要。 云HIS系统…

matlab使用教程(33)—求解时滞微分方程(1)

1.时滞微分方程(DDE)的分类 时滞微分方程 (DDE) 是当前时间的解与过去时间的解相关的常微分方程。该时滞可以固定不变、与时间相关、与状态相关或与导数相关。要开始积分&#xff0c;通常必须提供历史解&#xff0c;以便求解器可以获取初始积分点之前的时间的解。 1.1常时滞 D…

二维动画制作软件 Animate 2024 for mac激活版

Animate 2024 for Mac是一款功能强大的二维动画制作软件&#xff0c;专为Mac用户打造。它提供了丰富的动画编辑功能&#xff0c;使用户能够轻松创建出生动逼真的动画作品。无论是短片、广告还是游戏等应用领域&#xff0c;Animate 2024都能发挥出出色的表现。 软件下载&#xf…

ArcGIS Pro导出布局时去除在线地图水印

目录 一、背景 二、解决方法 一、背景 在ArcGIS Pro中经常会用到软件自带的在线地图&#xff0c;但是在导出布局时&#xff0c;图片右下方会自带地图的水印 二、解决方法 解决方法&#xff1a;添加动态文本--服务图层制作者名单&#xff0c;然后在布局中选定位置添加 在状…