当前位置: 首页 > news >正文

【C语言】基本语法结构(上篇)

本篇目录

  • 1. 变量声明
    • 1.1 变量的定义与命名规则
    • 1.2 变量的初始化
    • 1.3 变量作用域的基本概念
      • 1.3.1 局部变量
      • 1.3.2 全局变量
  • 2. 数据类型
    • 2.1 整型
    • 2.2 浮点型
    • 2.3 字符型
      • 2.3.1 ASCII码
  • 3. 其他
    • 3.1 计算机的存储单位
      • 3.1.1 最小单位:位(Bit)
      • 3.1.2 基础单位:字节(Byte)
      • 3.1.3 运算单位:字(Word)
    • 3.2 本篇参考/来源

1. 变量声明

变量是C语言中存储数据的基本单元。
在这里插入图片描述
变量就像是你家收拾的物品的抽屉,每个抽屉(变量)都有名字和类型,用来存不同的东西(数据)📄。

1.1 变量的定义与命名规则

变量的定义需要明确指定其类型和名称。

[类型] [变量名]

类型就是你存储数据📊的属性。

所有变量都必须先声明后使用。

请注意,在编写C语言一个完整的语句的时候,不要忘记在末尾添加分号(英文输入法中)。

在这里插入图片描述
就像是你在人群中找人,你要先知道一个人的名字,才能找到那个人🗣️

C语言的变量命名需遵循以下规则:

  • 由字母、数字和下划线组成,且必须以字母或下划线开头;
  • 要区分大小写,如Alice和alice是两个不同的变量;
  • 不能使用C语言的“关键字”作为变量名。
关键字类型一共32个关键字(目前为止)
数据类型关键字char、short、int、long、float、double、unsigned、signed、void、struct、union、enum
控制语句关键字if、else、for、while、do、switch、case、default、break、continue、goto、return
存储类型关键字auto、register、static、extern、const
其他关键字sizeof、typedef、volatile

例如,定义一个存储年龄的整型变量:

int age;

上面这行定义了一个名叫age的变量,也就是我们现在有了一个叫age的空抽屉🗃️

在这里插入图片描述

1.2 变量的初始化

初始化变量就是为变量赋一个初始值。

初始化变量可以直接在声明中完成,只需在变量名后面加上* 赋值运算符(=)*和待赋给变量的值即可。

  • 基础赋值运算符=:将右侧表达式的结果存储到左侧变量中,也就是将左边的数值给右侧的变量。

变量初始化的常用方法如下⬇️

int age = 18;

在这里插入图片描述
也就是在名为age的抽屉中,放了一张写着“18”的字条,既然它是个抽屉了,自然我们这里的数据可以不止是18,还可以是19、20。

但我们放的第一个纸条是数字18,所以变量初始化就是给“抽屉塞的第一个东西”。

上述是简单的单个变量初始化,既然有一个存储物品的空间🏠,那我们可以有很多的空间去存储不同的东西⬇️

int money = 100,save = 200;

在这里插入图片描述

1.3 变量作用域的基本概念

变量的作用域,听上去是个很抽象的概念,实际上变量的作用域可以理解为可见范围👀

就是意味着你能够在哪看到你的“盒子”🗃️

1.3.1 局部变量

上述我们在名为age的抽屉里放了“18”字条,抽屉的位置是在卧室。那么我们的作用域就是在卧室🛏️。

这种就称为局部变量,只有在特定区域可以使用的变量。

局部变量是在程序某个范围内可以使用,但超过这个范围便不可以使用,因为整个变量只作用在该范围内。

在这里插入图片描述

这是Alice的储物箱,Anna不能使用

在班级中,每个人都有自己的储物箱,那这个储物箱(变量)的所属权(作用域)是该学生而不是其他同学。

1.3.2 全局变量

与局部变量相对的就是全局变量。

在这里插入图片描述

这是班级公共的书架,所以Amy和Anna可以借阅

还是在班级中,班级的公共图书架📖是班级内所有都可以拿来借阅的,也就是在整个班级(程序)当中,任何人都可以对公共图书(全局变量)进行访问。

全局变量就是整个程序范围内都可以访问的变量。

在以后的程序练习中,我们会详细的介绍这两者的区别和使用,这里作为基础概念进行讲解。

2. 数据类型

C语言会把数据分成不同的“类型”,就像喜欢收纳物品的人喜欢将物品进行分类放到不同的地方。

数据类型用于存储不同类型的数据,下面是三种基本的数据类型。

2.1 整型

整型用于存储整数。

整型介绍
int基本整型,通常占4个字节
short(或short int)短整型,占2个字节
long(或long int)长整型,占4个或8个字节
long long(或long long int)长长整型,占用8个字节

字节是计算机存储和处理数据的基础单位,在本篇3.1中我会进行这方面的介绍。

int a = 10;

定义了一个名叫a的基本整型变量,a的值为10。

2.2 浮点型

浮点型又称实型,用于存储带小数的数值。

浮点型(实型)介绍
float单精度浮点型,占用4个字节,精度约6-7位有效数字
double双精度浮点型,占用8个字节,精度约15-17位有效数字

在大多数情况下,使用double可以获得更高的精度,能够让我们所计算的数据更加准确。

double pi = 3.1415926;

定义了一个名叫pi的双精度浮点型变量,pi的值为3.1415926。

2.3 字符型

字符型char用于存储单个字符,占用1个字节。

它既可以存储单个字符,也可以存储小整数。

char ch = 'A';
char num = 65;	//就是num = 'A';

注意,如果要将A赋值给ch,那么需要加上单引号(英文状态下)。

这里的小整数并非是真正的整数,而是ASCII码值,所以这里的65和’A’代表的含义是一样的,都表示大写字母A。

2.3.1 ASCII码

我们来简单的理解一下计算机⬇️

一个灯的状态有两种,开和关。

在这里插入图片描述
所以电子元件的状态有两种,开和关,用数字来表示就是0和1,计算机是由许许多多个电子元件组成的。

所以计算机能够直接计算有关0和1 相关的计算,也就是机器能够直接执行。

但是在现在的社会,我们生活中不止有数字,还有字符,还有其他数据,因此美国的标准化组织就出台了ASCII编码,规定了常用符号用哪些二进制数来表示。

由于数制之间是可以互相转换的,二进制可以转换成十进制(我们数学计算中,用的就是十进制),十进制可以同样转换为二进制。

十进制二进制ASCII 码(字符 / 含义)分类说明
000000000NUL(空字符)控制字符,用于标识空白
800001000BS(退格键)控制字符,光标左移 1 位
900001001TAB(制表符)控制字符,光标跳格
1000001010LF(换行键)控制字符,光标换行
1300001101CR(回车键)控制字符,光标回车
3200100000(空格字符)可显示字符,空白间隔
48001100000(数字 0)可显示字符,数字 0-9 起始
49001100011(数字 1)可显示字符,数字系列
… …(数字 2-9)十进制 48-57 对应数字 0-9
6501000001A(大写字母 A)可显示字符,大写字母起始
6601000010B(大写字母 B)可显示字符,大写字母系列
… …(大写字母 C-Z)十进制 65-90 对应大写 A-Z
9701100001a(小写字母 a)可显示字符,小写字母起始
9801100010b(小写字母 b)可显示字符,小写字母系列
… …(小写字母 c-z)十进制 97-122 对应小写 a-z
3300100001!(感叹号)可显示字符,标点符号
6401000000@(@符号)可显示字符,特殊符号
12701111111DEL(删除字符)控制字符,用于删除操作

⬆️这就是常见的ASCII码值,下篇我会讲到有关二进制十进制的互相转换和计算,这里作为学习的参考。

3. 其他

这里我们只作传统计算机和大众计算机进行说明,不探讨其他。

3.1 计算机的存储单位

在上述有关ASCII码的学习当中,我们了解到计算机能够直接理解的就是二进制,也就是电子元件的通路/断路两种状态。

3.1.1 最小单位:位(Bit)

计算机中最小的数据单位是“位”,只能表示两种状态:0或1。

在计算过程中,位通常用bit来表示。

在计算机中的所有的数据最终都会被拆解成“0”和“1”的位组合。

3.1.2 基础单位:字节(Byte)

字节是计算机中最常用的基础存储单位,1字节一般简写为1B。

字节与位的换算关系是这样的⬇️

1字节=8位。

由于字节本身也较小,实际使用中会使用更大的单位,他们的换算关系是1024,也就是210

  • 1KB(千字节) = 1024B
  • 1MB(兆字节)= 1024KB
  • 1GB(吉字节) = 1024MB
  • 1TB(太字节)= 1024GB

3.1.3 运算单位:字(Word)

字是计算机一次能处理的数据长度,大小并不固定,取决于计算机的“字长”(如32位机、64位机),1字=字节对应的字节数。

字体现计算机的运算能力,字长越长,计算机一次能处理的数据越多,运算速度通常越快。

举例🌰

  • 32位计算机:字长=32位,1字=4字节(32➗8=4),一次能处理4字节的数据📊
  • 64位计算机:字长=64位,1字=8字节(64➗8=8),一次能处理8字节的数据📊

3.2 本篇参考/来源

  • Kernighan, B., & Ritchie, D. The C Programming Language (第2版)[M].
  • Stephen Prata. C Primer Plus(第 6 版)中文版 [M]. 姜佑 译. 北京:人民邮电出版社,2019.
  • 图片由本人手绘制作✍️
http://www.dtcms.com/a/494598.html

相关文章:

  • 云原生进化论:加速构建 AI 应用
  • 【论文阅读】PathMR: Multimodal Visual Reasoning for Interpretable Pathology Analysis
  • 做护肤品好的网站不用流量的地图导航软件
  • 网站建网站建设wordpress自动标签添加内链插件
  • Java集合【开发的重点*】
  • 深度学习笔记39-CGAN|生成手势图像 | 可控制生成(Pytorch)
  • 第7篇 halcon12导出c++在vs2019配置环境显示图片
  • Socket.IO 聊天应用实例
  • 首发即交付,智元精灵G2携均胜集团过亿订单落地
  • 网站建设需要步骤到哪里查网站备案信息
  • 哈尔滨网站制作哪里专业西安公司网站制作要多少钱
  • WPF中的DataTemplate
  • 浙江建设局网站泰安北京网站建设公司哪家好
  • TensorFlow2 Python深度学习 - 使用Dropout层解决过拟合问题
  • Python数据分析实战:基于5年地铁犯罪数据构建多维安全评估模型【数据集可下载】
  • YOLO系列——OpenCV DNN模块在YOLOv11检测物体时输出的边界框坐标问题
  • 网站地图怎么用wordpress发布文章添加新字段
  • OpenCV轻松入门_面向python(第六章 阈值处理)
  • Visual Studio 2017(VS2017)可以编译 OpenCV 4.5.5 为 32 位(x86)版本
  • 使用 Wireshark 进行 HTTP、MQTT、WebSocket 抓包的详细教程
  • 一个基于BiTCN-LSTM混合神经网络的时间序列预测MATLAB程序
  • 火是用什么做的视频网站wordpress贴吧主题
  • 团购网站开发网址交易网站
  • git revert commit和undo commit的区别
  • HTTP 协议的演进之路:从 1.1 到 3.0
  • 开源CICD工具Arbess,从安装到入门零基础指南
  • Maya动画基础:自动关键帧切换、曲线图编辑器、摄影机录制动画
  • Unreal5从入门到精通之一些有用的编辑器首选项
  • 深度解析:HTTP/2 与 HTTP/3 的适用场景与技术取舍
  • 三勾软件| 用SpringBoot+Element-UI+UniApp+Redis+MySQL打造的点餐连锁系统