C语言学习二:数据的表现形式及运算

2024-03-27 15:38

本文主要是介绍C语言学习二:数据的表现形式及运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

常量和变量

在计算机高级语言中,常量和变量,就是数据的表现形式。

常量

在程序运行过程中,值是不能被改变的量。
这里写图片描述

总体来讲,C语言中常量可以分为这些:

(1)整形常量
(2)实型常量

可以分为十进制小数形式、指数形式、其中指数形式1.2e3表示的就是1.2乘10的三次方
在计算机输入输出,无法表示上角或者下角,所以以字母e或者E代表以10为底的指数。

(3)字符常量

普通字符,如’a’、’b’、字符常量存贮在计算机存贮单元中时候,并不是存贮字符a、b之类的,而是以其代码,一般就是ASCII代码表示。如’a’,是以二进制的97表示。
转义字符,用一种特殊形式的字符常量,以字符\开头的字符序列。
这里写图片描述

(4)字符串常量
(5)符号常量

用#define 指令,来指定一个符号名称代表一个常量。
#define PI 3.14156
句末没有分号,表示本文件从此行开始所有的PI 都表示3.14156
这样的好处是,对程序进行预编译前,预处理器先对PI进行处理,把所有的PI全部置换成
3.14156,那么在预编译之后,符号常量已经全部变成字面常量(3.14156),
这样可以做到“一改全改”


变量

表示的是一个有名字的、具有特定属性的一个存储单元。
简单来讲,就是用来存放数据的,也就是存放变量的值。
规则就是:先定义、后使用。

定义

指定该变量的名字和类型

使用

通过变量名调用。变量名实际上是以一个名字代表的一个存储地址,在对程序编译连接时
由编译系统给每一个变量名分配相对应的内存地址。
从变量中取值,就是通过变量名找到相应的内存地址,从该存储单位中读取数据。
这里写图片描述

常变量

C99允许使用常变量

const int a = 4;

表示a被定义为一个整型变量,其值为4,并且在变量存在期间其值不能改变。
常变量具有变量的基本属性,有类型,有存储单元,只是不允许改变它的值,和常量比较起来,
长变量有名字,可以在程序中直接引用。可以参照Java中常量的定义。
而前面提到的符号常量:#define PI 3.14156 也是有名字的,可以在程序中调用的。

符号常量和常变量的区别

符号常量是预编译指令,它只是用符号常量代表一个字符串。在预编译之后,符号常量
就不存在了,而且步分配存储单元,而常变量要占用存储单元,有变量值,建议用常变量。

标识符

用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列。如前面提到的printf
在C中规定,只能由字母、数字、和下划线三种字符组成。并且第一个字符必须为字母或者下划线

数据类型

前面提到变量的时候,显示需要:变量的名字和类型。
这里讲类型:
类型,就是对数据分配存储单元的安排,包裹存储单位的长度(占多少字节)以及数据的
存储形式,不同的类型分配不同的长度和存储形式。
这里写图片描述

其中:双长整型、布尔型、是C99新添加的。
(1)基本类型和枚举类型变量的值都是数值,统称为算数类型。
(2)算数类型和指针类型统称为纯量类型,因为其变量的值是以数字来表示的。
(3)枚举类型是程序中用户定义的整数类型。
(4)数组类型和结构体类型统称为组合类型。
(5)函数类型用来定义函数,描述一个函数的接口。

接下来的笔记,就是围绕这些来进行的。

这篇关于C语言学习二:数据的表现形式及运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852601

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口