C程序设计——常量

news2024/11/13 9:38:20

前面讲了变量,我们现在讲C语言的常量。

整数、自然数常量

十进制

就好像生活中,如果写一个数字,大家都默认是十进制,在C语言里也一样,比如:

int main(void)
{
    int iInt ;
    iInt = 10;
    printf("%d\r\n", iInt);
}

上面源码中的 10,就是一个10进制的整数常量,运行结果为;

八进制

一个数字,如果以0为前缀,那么,这就是个8进制常量:

int main(void)
{
    int iInt ;
    iInt = 010;
    printf("%d\r\n", iInt);
}

上面源码中的 010,就是一个8进制的常量。因为\left ( 10 \right )_{8}==\left ( 8 \right )_{10},所以上述源码的,运行结果如下:

八进制数,只能通过 0~7 八个字符来表示。

十六进制

十六进制数,如果以 0x 为前缀,那么,这就是个16进制常量:

int main(void)
{
    int iInt ;
    iInt = 0x10;
    printf("%d\r\n", iInt);
}

上面源码中的 0x10,就是一个16进制的常量。因为\left ( 10 \right )_{16}==\left ( 16 \right )_{10},所以上述源码的,运行结果如下:

定义一个常量

可以通过 const 关键字定义一个常量:

int main(void)
{
    const int I_XIAO_SHI= 3600;// 1小时 == 3600秒
}

上述源码就表示定义了一个整数类型的常量 I_XIAO_SHI。I_XIAO_SHI 叫做常量名。

上述源码中,定义I_XIAO_SHI

的时候,直接给它赋值了。这种在定义时赋值的操作,叫做初始化。用const 定义的常量只能初始化,不能赋值。如果你拥有一个好的编程风格,常量名全部用大写字母

char,unsigned char,short int……等所有整数、无符号整数类型,都可以通过const 关键字定义常量。

还可以通过 #defnie 关键字,来定义一个常量:

#define M_XIAO_SHI (3600)

如果你拥有一个好的编程风格,使用 #defnie 定义常量时,常量值一定要用括号括起来,因为这个不是今天的重点,所以不细讲,后面我们会专门讲。

浮点数常量

C语言中,所有的浮点数,都是十进制,先上源码 :

int main(void)
{
    float pi;
    float r ;
    pi = 3.14 ;
    r = 5.0 ;
}

上述源码中的 3.14和 5.0,就是浮点常量。特别的我们应该意识到,在C语言源码里:5 和 5.0 的含义是不一样的。5 是一个整数,5.0 是一个浮点数。

跟整数一样,也可以通过 const 或者 #define 来定义浮点常量:

#define M_PI (3.14)
int main(void)
{
    const float PI = 3.14;
}

再强调一下:

用const 定义的常量只能初始化,不能赋值。

如果你拥有一个好的编程风格,常量名全部用大写字母;使用 #defnie 定义常量时,常量值一定要用括号括起来

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

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

相关文章

无人机电子调速器详解!!!

电子调速器是无人机动力系统中的关键组件,主要负责将电池提供的直流电转换为交流电,并精确控制电机的转速,从而实现对无人机飞行状态的精确控制。以下是对无人机电子调速器的详细解析: 一、基本功能与原理 功能: 直…

R语言:如何安装包“linkET”

自己在R语言中安装包“linkET”时报错不存在叫‘linket’这个名字的程辑包 尝试了install.packages("linkET")和BiocManager::install("linkET")两种安装办法都不行 >install.packages("linkET") WARNING: Rtools is required to build R pa…

挑选知识库管理软件?9大推荐让你不再纠结

这篇文章介绍了以下工具:PingCode、Worktile、幕布、腾讯文档、坚果云、Notion中国版、Evernote、SharePoint、Confluence。 在选择知识库管理软件时,面对众多选项是否感到头疼?对于部门内部的协作和知识管理,选择一款适合的工具至…

unity json 处理

1. c#对象 -> json public class Item {public int id;public int num;public Item(int id, int num){this.id id;this.num num;} } public class PlayerInfo {public string name;public int atk;public int def;public float moveSpeed;public double roundSpeed;publi…

域名注册查询方法

域名不仅是网站的地址标识,更是企业和个人在互联网上的身份证明。要确保自己的在线品牌安全,了解域名注册查询方法至关重要。本文将介绍几种常见的域名查询方式,帮助您轻松了解网络资产的归属。 1. WHOIS查询: WHOIS(…

一站式数仓解决方案:ECharts+Luckysheet+DataX+Doris打造全能式数据中台

数据中台这个词出现的概率非常高,对于一个企业来讲,那么数据中台是什么呢?数据中台就是把数据从各个系统 用数据库对接、API对接、或者文件上传的形式把数据收集起来,整合加工,最后生成分析的结果,这个结果…

上周稼先社区的活动

参天是什么? 最近”参天”很火,不仅MySQL社区,听说Monty最近也跟他们搞了很多活动。其实说起华为的数据库,只有从事数据库行业的人才知道高斯,其他很多人不知道。但是即使从事数据库相关的人,对另外一个产…

C语言04--数组超详解

1.基本概念 逻辑:一次性定义多个相同类型的变量,并存储到一片连续的内存中语法: 数据类型 数组名字 [ 数据的量 ] ; 示例: int a[5]; int Num ; 语法释义: a 是数组名,即这片连续内存的名称[5] …

【Linux学习】Linux开发工具——vim

🔥个人主页: Forcible Bug Maker 🔥专栏:Linux学习 目录 🌈前言🔥vim的基本概念🔥vim的基本操作🔥vim命令模式的命令集🔥简单vim配置⭐一键配置美观的vim安装方法卸载方…

秒懂Linux之文件

目录 前言 一. C文件接口 二. 文件系统调用接口 open接口​编辑 文件fd的分配规则 利用规则实现重定向 前言 在我们学习文件之前得先明白文件是什么? ——文件 内容 属性—— 文件是谁打开的呢? ——文件由进程调度打开,当然前提是文件…

keepalived保活nginx1,nginx2

1 下载两个小玩意 yum -y install keepalived yum install psmisc -y 2 配置nginx1,2自启脚本 vim /root/shell/check-nginx.sh 我的脚本放在root/shell里 #!/bin/bash #获取nginx正在运行的进程数 npsnumps -C nginx --no-header | wc -lif [ $n…

Unity AB包

AB包比对文件内容: ab包名 包大小 包内容md5字符串 编辑器功能-设置默认资源: 可以选择资源作为默认资源保存到StreamingAssets文件夹并且为他们生成资源对比文件1. 在Unity菜单中添加一个功能按钮触发该功能(MenuItem特性)2. 获取在Project窗口选择的资源信息(Selection类)3. …

【js引擎】如何使用 quickjs 把一个 js 值转换成 c 字符串

开发 js 运行时时,最重要的模块莫过于 console.log 了。有了它,才可以在 js 代码中打印日志。那么如何用 quickjs 引擎实现该模块呢? 实际上 quickjs 已经实现了一个 console 的模块 js_print 实现 其中使用了接口 str JS_ToCStringLen(c…

【Linux】Linux(centos7)安装jdk1.8

第一步:卸载系统自带的JDK rpm -qa|grep java # xxx yyy zzz为你要卸载的插件,插件之间以空格隔开 rpm -e --nodeps xxx yyy zzz 先卸载JDK 第二步:安装JDK1.8 安装JDK rpm -ivh jdk-8u172-linux-x64.rpm 第三步:查看是否安…

基于x86 平台opencv的图像采集和seetaface6的人脸检测功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸检测功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的人脸检测模块从而实现…

特斯拉FSD软件进化史

特斯拉FSD软件进化史 01前言 特斯拉FSD自动驾驶是以摄像头为核心的纯视觉解决方案。 纯视觉方案的最初设计灵感来自对人类视觉的研究;即人眼睛搜集的信息到达视网膜后,经过大脑皮层的多个区域、神经层,最终形成生物视觉,并在脑…

Wyn商业智能助力零售行业数字化决策高效驱动

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 项目背景及痛点 百利商业的业务覆盖赛格、 SKP、奥莱、王府井等多地区具有代表性的商场,并创立了多个自有品牌。随着新零售模式的兴起,百利商业紧跟时代步伐&am…

集团数字化转型方案(六)

集团数字化转型方案旨在通过引入前沿技术,如人工智能(AI)、大数据分析、云计算和物联网(IoT),全面提升业务运营效率和市场竞争力。该方案首先实现业务流程的自动化,减少人工干预,通过…

python-求距离(赛氪OJ)

[题目描述] 给你一个 1−>n 的排列,现在有一次机会可以交换两个数的位置,求交换后最小值和最大值之间的最大距离是多少?输入格式: 输入共两行。 第一行一个数 n 。 第二行 n 个数表示这个排列。输出格式: 输出一行一…

嵌入式day28

线程退出 ---pthread_exit() 线程结束方式: 1.pthread_exit //pthread_join 2.从线程执行函数中return //此时等价于1 3.pthread_cancel //线程可以被取消 4.任何一个线程调用了exit 或者 主线程main函数return…