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

在这里插入图片描述
🌈个人主页:聆风吟_
🔥系列专栏:星计划★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));       //结果:1printf("%d\n", sizeof(short));      //结果:2printf("%d\n", sizeof(int));        //结果:4printf("%d\n", sizeof(long));       //结果:4printf("%d\n", sizeof(float));      //结果:4printf("%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);//输出结果是7return 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.mzph.cn/news/791736.shtml

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

相关文章

哲♂学家带你深♂入了解动态顺序表

前言&#xff1a; 最近本哲♂学家学习了顺序表&#xff0c;下面我给大家分享一下关于顺序表的知识。 一、什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组 上完成数据的增删查改。 顺序表&#xff…

C++从入门到精通——入门知识

1. C关键字(C98) C总计63个关键字&#xff0c;C语言32个关键字 2. 命名空间 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称都将存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的就是对标识符的名…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(8)复发

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 B站-PS异闻录&#xff1a;萌新系统入门课课程视频 …

大模型论文阅读:ADAPTIVE BUDGET ALLOCATION FOR PARAMETEREFFICIENT FINE-TUNING

大模型论文阅读:ADAPTIVE BUDGET ALLOCATION FOR PARAMETEREFFICIENT FINE-TUNING 论文链接:https://arxiv.org/pdf/2303.10512v1.pdf 当存在大量下游任务时,微调所有预训练模型的参数变得不可行。因此,为了以参数高效的方式学习预训练权重的增量更新,提出了许多微调方法,…

【并发编程】CountDownLatch

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程 ⛺️稳中求进&#xff0c;晒太阳 CountDownLatch 概念 CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行。 CountDownLatch 定义了一个计数器&#xff0c;…

【每日一道算法题】移除链表节点

这里写自定义目录标题 【每日一道算法题】移除链表元素思路记录我的代码力扣官方题解递归迭代 【每日一道算法题】移除链表元素 力扣题目链接(opens new window) 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xf…

arm的状态寄存器

目录 一、arm 的 PSRs二、CPSR2.1 CPSR_cxsf 三、SPSR四、APSR 一、arm 的 PSRs arm 中有很多程序状态寄存器&#xff08;Program Status Registers&#xff0c;PSRs&#xff09;用于存储处理器的状态信息&#xff0c;包括 CPSR\SPSR\FPSR\APSR 等&#xff1a; CPSR&#xff…

Vue3配置router路由步骤

Vue3配置router路由步骤 首先创建一个vue3的项目 先检查一下router的版本&#xff0c;可以在pakage.json里面查看&#xff0c;也可以你直接在终端输入 npm list vue-router如果版本比较低的话&#xff0c;先升级一下 vue3的话&#xff0c;用以下命令 npm install vue-route…

红蓝色WordPress外贸建站模板

红蓝色WordPress外贸建站模板 https://www.mymoban.com/wordpress/5.html

TSINGSEE青犀推出河道/河湖/水域治理视频AI智能解决方案

一、方案背景 “十四五”时期&#xff0c;在面源污染防治等方面实现突破&#xff0c;实现主要水污染排放总量持续减少&#xff0c;水生态环境持续改善等任务艰巨。进一步完善流域综合治理体系&#xff0c;提升流域水环境综合治理能力和水平&#xff0c;更好适应新阶段发展需求…

IDEA2023.1.1中文插件

1.启动IDEA 选中Customize 2.选择All settings 3.选中Plugins,再搜索栏里输入Chinese,找到 "Chinese (Simplified) Language"插件&#xff0c;点击 Install 进行安装。 4. 安装完成后&#xff0c;重启IntelliJ IDEA&#xff0c;即可看到界面语言已经变为中文。

JavaScript(一)基础

文章目录 一、JS介绍JavaScript是什么JavaScript书写位置JavaScript的注释输入输出语法字面量 二、变量变量是什么变量基本使用变量的本质变量命名规则与规范变量拓展-数组var与let的区别 三、常量四、数据类型数据类型检测数据类型数据类型转换隐式转换显式转换 简单运算符断点…

【洛谷 P8695】[蓝桥杯 2019 国 AC] 轨道炮 题解(映射+模拟+暴力枚举+桶排序)

[蓝桥杯 2019 国 AC] 轨道炮 题目描述 小明在玩一款战争游戏。地图上一共有 N N N 个敌方单位&#xff0c;可以看作 2D 平面上的点。其中第 i i i 个单位在 0 0 0 时刻的位置是 ( X i , Y i ) (X_i, Y_i) (Xi​,Yi​)&#xff0c;方向是 D i D_i Di​ (上下左右之一, 用…

同步检查继电器 JT-1/200 100V 面板嵌入式安装,板后接线

系列型号 JT-1同步检查继电器&#xff1b; DT-1同步检查继电器&#xff1b; JT-3同步检查继电器&#xff1b; DT-3同步检查继电器&#xff1b; 一、应用范围 JT(DT)系列同步检查继电器用于两端供电线路的自动重合闸线路中&#xff0c;以检查线路上电压的存在及线路上和变电站汇…

基于Spring Boot的在线考试系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

element-ui breadcrumb 组件源码分享

今日简单分享 breadcrumb 组件的源码实现&#xff0c;主要从以下三个方面&#xff1a; 1、breadcrumb 组件页面结构 2、breadcrumb 组件属性 3、breadcrumb 组件 slot 一、breadcrumb 组件页面结构 二、breadcrumb 组件属性 2.1 separator 属性&#xff0c;分隔符&#xff…

程序员沟通之道:TCP与UDP之辩,窥见有效沟通的重要性(day19)

程序员沟通的重要性&#xff1a; 今天被师父骂了一顿&#xff0c;说我不及时回复他&#xff0c;连最起码的有效沟通都做不到怎么当好一个程序员&#xff0c;想想还挺有道理&#xff0c;程序员需要知道用户到底有哪些需求&#xff0c;用户与程序员之间的有效沟通就起到了关键性作…

Java多态世界(day18)

多态&#xff1a;重写的方法调用和执行 1.静态绑定&#xff1a;编译器在父类中找方法&#xff0c;如&#xff1a; 上面的eat&#xff08;&#xff09;方法是先在父类中找方法&#xff0c;父类没有的话&#xff0c;就算子类有编译也会报错。&#xff08;如果引用方法在父类中存…

UE4_普通贴图制作法线Normal材质

UE4 普通贴图制作法线Normal材质 2021-07-02 10:46 导入一张普通贴图&#xff1a; 搜索节点&#xff1a;NormalFromHeightmap 搜索节点&#xff1a;TextureObjectparameter&#xff0c;并修改成导入的普通贴图&#xff0c;连接至HeightMap中 创建参数normal&#xff0c;连接…

Dockerfile详解构建镜像

Dockerfile构建企业级镜像 在服务器上可以通过源码或rpm方式部署Nginx服务&#xff0c;但不利于大规模的部署。为提高效率&#xff0c;可以通过Dockerfile的方式将Nginx服务封装到镜像中&#xff0c;然后Docker基于镜像快速启动容器&#xff0c;实现服务的快速部署。 Dockerf…